제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
Hackster 커뮤니티 안녕하세요!
저는 Simone Adobs이며 이 사이트에서 발표한 두 번째 프로젝트입니다.
이 프로젝트의 논리는 매우 간단합니다. <울>
일부 코드 설명:
이것은 멜로디의 예이며 모든 멜로디는 다음과 같이 작성됩니다.
<사전><코드> 멜로디_예제() { lcd.clear(); lcd.setCursor(0,0); lcd.print("노래 제목"); 지연(1000); lcd.clear(); nota_mi(지속시간,일시정지); //음표 nota_do(duration,pause); //음표 lcd.clear(); 지연(100); 재설정_AVR(); //이 명령은 버튼을 누르지 않고 Arduino를 재설정하는 데 사용됩니다.}"Reset_AVR()" 명령을 사용하려면 이 코드를 스케치 상단에 넣어야 합니다.
#include #include #define Reset_AVR() wdt_enable(WDTO_30MS); 동안(1) {}
이것은 Arduino가 연주해야 하는 멜로디를 이해하는 방법입니다.
if (result==12495) { //12495는 버튼 1을 눌렀을 때 내 리모컨이 보내는 코드입니다 멜로디_1(); } else if (result==6375) { //6375는 버튼 2의 코드 멜로디_2(); } else if (result==31365) { //31365는 버튼 3의 코드 멜로디_3(); } else if (result==4335) { //4335는 버튼 4의 코드 멜로디_4(); } }코드>
void nota_example(int duration, int pause) { shut(); //이 명령은 아래에서 설명할 함수를 호출합니다. lcd.setCursor(0, 0); lcd.print("예시"); //음표명 출력 NewTone(11,262,duration); //11->부저 핀 - 262->노트 코드 지연(일시 중지); //몇 밀리초 동안 기다림}
멜로디가 재생 중일 때 중지하시겠습니까?
문제 없습니다. "shut()" 기능 덕분에 원할 때마다 멜로디를 멈출 수 있습니다.
이것은 "shut()" 함수입니다:
void shut() { if (irrecv.decode(&results)) { //버튼이 눌린 코드 수신 result=results.value, HEX; //받은 코드를 저장합니다. Serial.println(result); if (result==-23971) { //-23971 on my Remote는 종료 버튼을 나타냅니다. Reset_AVR(); //아두이노 리셋 } } recv.resume(); //Arduino가 Remote에서 새 코드를 수신하도록 허용}
이 프로젝트가 마음에 드셨으면 좋겠습니다. 그렇다면 이전 프로젝트를 살펴보세요.
좋은 하루 되세요.
이탈리아의 Simone <3
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">#include섹션>#include #include #include #include #define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {} #define 버저 11 LiquidCrystal lcd(9, 8, 7, 6, 5, 4);int result;int RECV_PIN=2;IRrecv recv(RECV_PIN);decode_results 결과; 무효 설정() { Serial.begin(9600); lcd.begin(16,2); lcd.setCursor(0,0); lcd.print("--------선택-----"); lcd.setCursor(0,1); lcd.print("----노래!!----"); 핀모드(부저, 출력); recv.enableIRIn();} 무효 루프() { if (irrecv.decode(&results)) { 결과=results.value, HEX; Serial.println(결과); if (결과==12495) { ode(); } else if (결과==6375) { 런던(); } else if (결과==31365) { 모피(); } else if (결과==4335) { 해적(); } recv.resume(); } 지연(100);} void fur() { lcd.clear(); lcd.setCursor(0,0); lcd.print("엘리제 모피"); 지연(1000); lcd.clear(); nota_mi(150,200); nota_rez(150,200); nota_mi(150,200); nota_rez(150,200); nota_mi(150,200); nota_si(150,200); nota_rez(150,200); nota_do(150,200); nota_la(450,300); nota_do(150,200); nota_mi(150,200); nota_la(150,200); nota_si(450,300); nota_mi(150,200); nota_solz(150,200); nota_si(150,200); nota_do(450,300); nota_mi(150,200); nota_mi(150,200); nota_rez(150,200); nota_mi(150,200); nota_rez(150,200); nota_mi(150,200); nota_si(150,200); nota_rez(150,200); nota_do(150,200); nota_la(450,300); nota_do(150,200); nota_mi(150,200); nota_la(150,200); nota_sol(450,300); nota_mi(150,200); nota_do(150,200); nota_si(150,200); nota_la(600,800); nota_mi(150,200); nota_rez(150,200); nota_mi(150,200); nota_rez(150,200); nota_mi(150,200); nota_si(150,200); nota_rez(150,200); nota_do(150,200); nota_la(450,300); nota_do(150,200); nota_mi(150,200); nota_la(150,200); nota_si(450,300); nota_mi(150,200); nota_solz(150,200); nota_si(150,200); nota_do(450,300); lcd.clear(); 지연(100); Reset_AVR();} london() { lcd.clear(); lcd.setCursor(0,0); lcd.print("런던 브릿지"); lcd.setCursor(0,1); lcd.print("떨어지고 있습니다"); 지연(1000); lcd.clear(); nota_sol(450,600); nota_la(150,200); nota_sol(300,400); nota_fa(300,400); nota_mi(300,400); nota_fa(300,400); nota_sol(600,800); nota_re(300,400); nota_mi(300,400); nota_fa(600,800); nota_mi(300,400); nota_fa(300,400); nota_sol(600,800); nota_sol(450,600); nota_la(150,200); nota_sol(300,400); nota_fa(300,400); nota_mi(300,400); nota_fa(300,400); nota_sol(600,800); nota_re(600,800); nota_sol(600,800); nota_mi(300,400); nota_do(450,600); lcd.clear(); 지연(100); Reset_AVR();} 무효 ode() { lcd.clear(); lcd.setCursor(0,0); lcd.print("환희의 송가"); 지연(1000); lcd.clear(); nota_mi(300,400); nota_mi(300,400); nota_fa(300,400); nota_sol(300,400); nota_sol(300,400); nota_fa(300,400); nota_mi(300,400); nota_re(300,400); nota_do(300,400); nota_do(300,400); nota_re(300,400); nota_mi(300,400); nota_mi(450,600); nota_re(150,200); nota_re(600,800); nota_mi(300,400); nota_mi(300,400); nota_fa(300,400); nota_sol(300,400); nota_sol(300,400); nota_fa(300,400); nota_mi(300,400); nota_re(300,400); nota_do(300,400); nota_do(300,400); nota_re(300,400); nota_mi(300,400); nota_re(450,600); nota_do(150,200); nota_do(600,800); nota_re(300,400); nota_re(300,400); nota_mi(300,400); nota_do(300,400); nota_re(300,400); nota_mi(150,200); nota_fa(150,200); nota_mi(300,400); nota_do(300,400); nota_re(300,400); nota_mi(150,200); nota_fa(150,200); nota_mi(300,400); nota_re(300,400); nota_do(300,400); nota_re(300,400); nota_sol(600,800); nota_mi(300,400); nota_mi(300,400); nota_fa(300,400); nota_sol(300,400); nota_sol(300,400); nota_fa(300,400); nota_mi(300,400); nota_re(300,400); nota_do(300,400); nota_do(300,400); nota_re(300,400); nota_mi(300,400); nota_re(450,600); nota_do(150,200); nota_do(600,800); lcd.clear(); 지연(100); Reset_AVR();}해적 무효화() { lcd.clear(); lcd.setCursor(0,0); lcd.print("해적입니다."); 지연(1000); lcd.clear(); nota_mi(150,200); nota_sol(150,200); nota_la(300,400); nota_la(300,400); nota_la(150,200); nota_si(150,200); nota_do(300,400); nota_do(300,400); nota_do(150,200); nota_re(150,200); nota_si(300,400); nota_si(300,400); nota_la(150,200); nota_sol(150,200); nota_sol(150,200); nota_la(450,600); nota_mi(150,200); nota_sol(150,200); nota_la(300,400); nota_la(300,400); nota_la(150,200); nota_si(150,200); nota_do(300,400); nota_do(300,400); nota_do(150,200); nota_re(150,200); nota_si(300,400); nota_si(300,400); nota_la(150,200); nota_sol(150,200); nota_la(300,400); 지연(400); nota_mi(150,200); nota_sol(150,200); nota_la(300,400); nota_la(300,400); nota_la(150,200); nota_do(150,200); nota_re(300,400); nota_re(300,400); nota_re(150,200); nota_mi(150,200); nota_fa(300,400); nota_fa(300,400); nota_mi(150,200); nota_re(150,200); nota_mi(150,200); nota_la(450,600); nota_la(150,200); nota_si(150,200); nota_do(300,400); nota_do(300,400); nota_re(300,400); nota_mi(150,200); nota_la(450,600); nota_la(150,200); nota_do(150,200); nota_si(300,400); nota_si(300,400); nota_do(150,200); nota_la(150,200); nota_si(900,1200); nota_si(300,400); nota_si(300,400); nota_do(150,200); nota_la(150,200); nota_si(900,1200); nota_si(300,400); nota_si(300,400); nota_la(150,200); nota_sol(150,200); nota_la(600,800); lcd.clear(); 지연(100); Reset_AVR();} 무효 셧() { if (irrecv.decode(&results)) { 결과=results.value, HEX; Serial.println(결과); if (결과==-23971) { Reset_AVR(); } } recv.resume();} 무효 nota_do(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("실행"); NewTone(11,262, 기간); //DO 지연(일시 중지); } 무효 nota_doz(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("# 하세요"); NewTone(11,277, 기간); //DO 지연(일시 중지); } 무효 nota_re(int 지속 시간, int 일시 중지) { 종료; lcd.setCursor(0, 0); lcd.print("재"); NewTone(11,294, 기간); //RE 지연(일시 중지); } 무효 nota_rez(int 지속 시간, int 일시 중지) { 종료; lcd.setCursor(0, 0); lcd.print("다시 # "); NewTone(11,311, 기간); //RE 지연(일시 중지); } 무효 nota_mi(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("미"); NewTone(11,330, 기간); //MI 지연(일시 중지); } 무효 nota_fa(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("파"); NewTone(11,349, 기간); //FA 지연(일시 중지); } 무효 nota_faz(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("파 # "); NewTone(11,370, 기간); //FA 지연(일시 중지); } 무효 nota_sol(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("솔"); NewTone(11,392, 기간); //SOL 지연(일시 중지); } 무효 nota_solz(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("솔 번호 "); NewTone(11,415, 기간); //SOL 지연(일시 중지); } 무효 nota_la(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("라"); NewTone(11,440, 기간); //LA 지연(일시 중지); } 무효 nota_laz(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("라 # "); NewTone(11,466, 기간); //LA 지연(일시 중지); } 무효 nota_si(int 지속 시간, int 일시 중지) { 종료(); lcd.setCursor(0, 0); lcd.print("시"); NewTone(11,494, 기간); //SI 지연(일시 중지); }
제조공정
구성품 및 소모품 Arduino UNO × 1 브레드보드(일반) × 1 초음파 센서 - HC-SR04(일반) × 1 부저 × 1 LED(일반) × 3 저항 221옴 × 1 점퍼 와이어(일반) × 10 이 프로젝트 정보 1단계:자료 수집 2단계:설정 Arduino의 5V 핀에서 빨간색 와이어를 브레드보드의 양극 채널에 연결합니다. Arduino의 GND 핀에서
구성품 및 소모품 Arduino UNO × 1 Adafruit RGB 백라이트 LCD - 16x2 × 1 브레드보드(일반) × 1 저항 220옴 × 1 SparkFun 푸시버튼 스위치 12mm × 1 점퍼 와이어(일반) × 1 USB-A-B 케이블 × 1 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 필요한 부품은 위의 그림과