TimerFreeTone
- Войдите на сайт для отправки комментариев
Сб, 13/01/2018 - 23:04
Очень срочно!
Помогите после включения пищалки у меня всё перестаёт работать.
Вот скетч:
#include "IRremote.h"
IRrecv irrecv(10);
decode_results results;
int led1=0;
int led2=0;
int led3=0;
int led4=0;
int led=0;
#include <TimerFreeTone.h>
#define TONE_PIN 9
int melody[] = { 262, 196, 196, 220, 196, 0, 247, 262 };
int duration[] = { 250, 125, 125, 250, 250, 250, 250, 250 };
void setup (){
pinMode(3,OUTPUT);
pinMode(2,OUTPUT);
pinMode(4,OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if ( irrecv.decode( &results )) {
Serial.println(results.value, HEX);
if (results.value==0xFF30CF&&led1==0){
digitalWrite( 2, HIGH );led1=1;results.value=0;
}
if (results.value==0xFF30CF&&led1==1){
digitalWrite( 2, LOW );led1=0;results.value=0;
}
if (results.value==0xFF18E7&&led2==0){
digitalWrite( 3, HIGH );led2=1;results.value=0;
}
if (results.value==0xFF18E7&&led2==1){
digitalWrite( 3, LOW );led2=0;results.value=0;
}
if (results.value==0xFF7A85&&led3==0){
digitalWrite( 4, HIGH );led3=1;results.value=0;
}
if (results.value==0xFF7A85&&led3==1){
digitalWrite( 4, LOW );led3=0;results.value=0;
}
if (results.value==0xFFA25D){
digitalWrite( 2, HIGH );
delay(200);
digitalWrite( 2, LOW );
delay(200);
digitalWrite( 3, HIGH );
delay(200);
digitalWrite( 3, LOW );
delay(200);
digitalWrite( 4, HIGH );
delay(200);
digitalWrite( 4, LOW );
delay(200);
digitalWrite( 3, HIGH );
delay(200);
digitalWrite( 3, LOW );
delay(200);
digitalWrite( 2, HIGH );
delay(200);
digitalWrite( 2, LOW );
delay(200);
}
if (results.value==0xFFC23D){
for (int thisNote = 0; thisNote < 8; thisNote++) {
TimerFreeTone(TONE_PIN, melody[thisNote], duration[thisNote]);
delay(25);
}
while(1);
results.value=0;
}
if (results.value==0xFF6897&&led==0){
digitalWrite( 2, HIGH );
digitalWrite( 3, HIGH );
digitalWrite( 4, HIGH );led=1;results.value=0;
}
if (results.value==0xFF6897&&led==1){
digitalWrite( 2, LOW );
digitalWrite( 3, LOW );
digitalWrite( 4, LOW );led=0;results.value=0;
}
irrecv.resume();
}
}
Что, по-вашему, делает while(1); ? Как только ответите на этот простой вопрос - сразу поймёте, почему всё перестаёт работать.
И да - вставляйте код правильно, на панели инструментов редактора сообщений есть кнопочка для вставки кода.
Что, по-вашему, делает while(1); ? Как только ответите на этот простой вопрос - сразу поймёте, почему всё перестаёт работать.
И да - вставляйте код правильно, на панели инструментов редактора сообщений есть кнопочка для вставки кода.
спасибо большое!