BASIC4MCU | 질문게시판 | ATMEGA128 토양습도센서값에따라 led, 모터 제어
페이지 정보
작성자 정원 작성일2021-06-10 15:27 조회18,446회 댓글4건본문
토양습도센서값이 높으면 led가 빨간색유지 모터가켜지고 낮아지게되면 초록불이들어오며 모터가꺼지게하고싶은데 if문안에 첫문장만 실행만되고 안되네요.... 코딩초보라서 도움부탁드립니다ㅜㅜ
토양습도센서값은 아두이노로 0~1023 인거 확인했습니다.
2색LED는 C포트1, 2 쓰고 토양습도센서는 F포트0 쓰고 모터는 C포트0 씁니다.
#include <mega128.h>
#include <delay.h>
void main(void) {
int ad_val;
DDRF = 0xF0;
DDRC = 0xFF;
ADMUX = 0x00;
ADCSRA = 0x87;
delay_ms(5);
while(1){
ADCSRA = 0xe7;
while((ADCSRA & 0x10) == 0);
ad_val = (int)ADCL + ((int)ADCH << 8);
delay_ms(2);
if (ad_val > 800){
PORTC = 0b00000011;
delay_ms(500);
}
else if (ad_val < 800 ) {
PORTC = 0b00000100;
delay_ms(500);
}
}
}
댓글 4
조회수 18,446master님의 댓글
master 작성일
#include <mega128.h>
#include <delay.h>
//
void main(void) {
int ad_val;
DDRC=7;
ADMUX=0x40; ADCSRA=0xE7;
delay_ms(5);
while(1){
ad_val=ADCW;
if(ad_val>800)PORTC=0b00000011;
else PORTC=0b00000100;
delay_ms(500);
}
}
정원님의 댓글
정원
물에 담궈놨는데도 변화안되는거는 회로문제인건가요??
master님의 댓글
master
그 정도의 문제는 스스로 해결하셔야 합니다.
정원님의 댓글
정원
아 해결했습니다 감사합니다.