BASIC4MCU | 질문게시판 | Atmega128 RGB 밝기조절
페이지 정보
작성자 일렉트릭붐 작성일2022-12-29 15:20 조회14,679회 댓글5건본문
Atmega128 16Mhz 사용해서 rgb 밝기 값을 0%,50%,100% 로 조절하고 싶은데
50% 밝기의 rgb를 만들려고 합니다
듀티비 사용해서 만들면 된다는 것을 아는데
어떻게 코드를 짜야 할 지 감이 안 잡힙니다.
코드작성에 도움좀 받을 수 있을까요
댓글 5
조회수 14,679master님의 댓글
master 작성일
https://cafe.naver.com/circuitsmanual/151206
DC모터 PWM 예제인데요
모터 대신 LED를 연결하면 됩니다.
//
https://cafe.naver.com/circuitsmanual/151271
이 예제는 6채널 PWM 예제인데요
조금 수정 해드리죠
//=====================================================================//
// 코드비젼 컴파일러
//=====================================================================//
#include <mega128.h> //16MHz
#include <delay.h>
//
void main(void){
int i;
DDRB=0xE0; // PB5,6,7 out
TCCR1A=0xAA; TCCR1B=0x1A; ICR1=100;
while(1){
OCR1AL=0; //PB5
OCR1BL=50; //PB6
OCR1CL=100; //PB7
delay_ms(100);
}
}
//=====================================================================//
// AVRstuio 컴파일러
//=====================================================================//
#define F_CPU 16000000UL // 16 MHz
#include <avr/io.h>
#include <util/delay.h>
//
int main(void){
int i;
DDRB=0xE0; // PB5,6,7 out
TCCR1A=0xAA; TCCR1B=0x1A; ICR1=100;
while(1){
OCR1AL=0; //PB5
OCR1BL=50; //PB6
OCR1CL=100; //PB7
_delay_ms(100);
}
}
일렉트릭붐님의 댓글
일렉트릭붐 작성일
댓글 감사합니다.
void DC_Motor(int speed){ // speed : 0% ~ 100%
if(speed< 0)speed= 0;
if(speed>100)speed=100;
OCR1A=speed; //PB5
첫번째 링크에 있는 이 부분에서 첫 번째줄의 DC_Motor 부분은 뭘로 바꿔주면 될까요?
master님의 댓글
master 작성일
함수명은 마음에 드는 것으로 변경해주면 됩니다.
RGB는 3개 채널이 있어야 하는 것 아닌가요?
일렉트릭붐님의 댓글
일렉트릭붐 작성일저는 PORTF의 0,1,2 비트를 사용 하고 있습니다
master님의 댓글
master 작성일
PWM핀은 변경하지 못합니다.
회로를 변경할 수 있는지 검토 해보세요