BASIC4MCU | 질문게시판 | Atmega128로 변환하기
페이지 정보
작성자 욱2 작성일2019-06-10 15:23 조회6,360회 댓글2건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=9306
본문
atmega uno로 짜여진건데..atmega 128로 변환해주시면 감사하겠습니다.#include <LiquidCrystal.h>//#include// Warmupint TIME_UNTIL_WARMUP=20;unsigned long time;// Measurementint TIME_UNTIL_MEASURE=5;unsigned long measurement_start;// Sensor readingsint analogPin=A0;int val=0;// Buzzerconst int buzzerPin=3;// Buttonconst int buttonPin=2;// Modesbool measurement_mode;bool measurement_done;// LCDconst int rsPin=9;const int enablePin=8;const int d4Pin=4;const int d5Pin=5;const int d6Pin=6;const int d7Pin=7;LiquidCrystal lcd(rsPin,enablePin,d4Pin,d5Pin,d6Pin,d7Pin);//void setup(){// SerialSerial.begin(9600);// Init LCDanalogWrite(10,120);lcd.begin(16,2);digitalWrite(13,LOW);}//void loop(){// Read button stateint button_state=digitalRead(buttonPin);if(button_state&&!measurement_mode){lcd.clear();measurement_mode=true;measurement_start=millis()/1000;measurement_done=false;}if(button_state&&measurement_done){ delay(500); }if(measurement_mode){ digitalWrite(13,HIGH); }else{ digitalWrite(13,LOW); }//delay(100);// Get timetime=millis()/1000;// Warmupif(time<=TIME_UNTIL_WARMUP){int progress_time=map(time,0,TIME_UNTIL_WARMUP,0,100);printWarming(progress_time);}else{if(measurement_mode==false&&!measurement_done){// InstructionprintPress();}if(measurement_mode&&!measurement_done){// InstructionprintMeasure();// Soundtone(buzzerPin,1000);// Read alcohol levelval=readAlcohol();}if(measurement_mode&&!measurement_done&&((time-measurement_start)>TIME_UNTIL_MEASURE)){noTone(buzzerPin);measurement_mode=false;measurement_done=true;lcd.clear();}if(measurement_done){printAlcohol(val);printAlcoholLevel(val);//delay(5000);//measurement_done=false;}}}//void printWarming(int progress){Serial.print("Warming up: "); Serial.print(progress); Serial.println("%");lcd.setCursor(0,0); lcd.print("Warming up: ");lcd.setCursor(0,1); lcd.print(progress,DEC); lcd.print("% ");}//void printPress(){Serial.println("Press to start...");lcd.setCursor(0,0); lcd.print("Press to start..");}//void printMeasure(){Serial.println("Breathe until the sound stops...");lcd.setCursor(0,0); lcd.print("Breathe until th");lcd.setCursor(0,1); lcd.print("e sound stops...");}//void printAlcohol(int value){Serial.print("Sensor reading: "); Serial.println(val);lcd.setCursor(0,0); lcd.print("Detecting..."); lcd.print(val,DEC);}//void printAlcoholLevel(int value){lcd.setCursor(0,1);if (value<200){ lcd.print("You are sober "); Serial.println("You are sober"); }else if(value<280){ lcd.print("Una chela. "); Serial.println("One beer."); }else if(value<350){ lcd.print("two or more beer"); Serial.println("two or more beers"); }else if(value<450){ lcd.print("Too much... "); Serial.println("Too much..."); }else { lcd.print("You're drunk "); Serial.println("You're drunk"); }}//int readAlcohol(){int sum=0;for(int i=0;i<5;i++)sum+=analogRead(analogPin); // 5회 측정 해서 더함int avrg=sum/5; // 평균값 계산return avrg;}
댓글 2
조회수 6,360master님의 댓글
master 작성일앞의 질문을 변경해드렸으니 이 소스는 직접 만들어보세요
master님의 댓글
master 작성일
https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo6&wr_id=63
LED 1개 키는 것부터 차근차근 공부하실 것을 권합니다.
숙제를 대신 해줄 사람은 없으며, 설령 있다고 해도 남의 귀한 시간을 뺏어서도 안되고, 질문하신 분에게도 아무런 도움이 안됩니다.
국내에서 AVR 예제는 우리 사이트와 네이버전자공작카페에 가장 많이 있습니다.
공부를 하려고하면 상기 사이트 예제로 혼자서도 얼마든지 공부 할 수 있습니다.