#include #include Motor pojezd(30,32,8); Motor zataceni(31,33,9); int zateceniInterval=250; Motor klepeta(34,36,10); int klepetaInterval=600; IrDekoder ir(22); int predniSvetlaPin=52; boolean predniSvetla=false; int zadniSvetlaPin=53; boolean zadniSvetla=false; int sirenaPin=50; boolean sirena=false; //on of boolean sirenaState=sirena; //faze blikani int sirenaInterval=400; long minSirenaTime=0; int houkackaPin=12; int houkackaTon=600; int houkackaDelka=400; int houkackaMezera=500; void setup() { pinMode(predniSvetlaPin,OUTPUT); digitalWrite(predniSvetlaPin,predniSvetla); pinMode(zadniSvetlaPin,OUTPUT); digitalWrite(zadniSvetlaPin,zadniSvetla); pinMode(sirenaPin,OUTPUT); digitalWrite(sirenaPin,sirenaState); } void loop() { //IR if( ir.recievedData() ) { switch( ir.getRecievedData() ) { case 586: //zeleny tlacitko: PREDNI SVETLA predniSvetla=!predniSvetla; digitalWrite(predniSvetlaPin,predniSvetla); delay(100); break; case 74: //zeleny tlacitko: ZADNI SVETLA zadniSvetla=!zadniSvetla; digitalWrite(zadniSvetlaPin,zadniSvetla); Serial.println(zadniSvetla,DEC); delay(100); break; case 330: //zluty tlacitko: SIRENA - blikaci sirena=!sirena; if( sirena ) { minSirenaTime=millis(); sirenaState=true; } digitalWrite(sirenaPin,sirena); delay(100); break; case 98: //dot KLAKSON tone(houkackaPin,houkackaTon); delay(houkackaDelka); noTone(houkackaPin); delay(houkackaMezera); tone(houkackaPin,houkackaTon); delay(houkackaDelka); noTone(houkackaPin); break; //POJEZD case 594: //nahoru DOPREDU pojezd.stopMotor(); pojezd.forward(); delay(100); break; case 338: //dolu DOZADU pojezd.stopMotor(); pojezd.backward(); delay(100); break; case 1002: //menu STOP pojezd pojezd.stopMotor(); delay(100); break; case 658: //doleva DOLEVA zataceni.stopMotor(); zataceni.forward(); delay(zateceniInterval); zataceni.stopMotor(); break; case 146: //doprava DOPRAVA zataceni.stopMotor(); zataceni.backward(); delay(zateceniInterval); zataceni.stopMotor(); break; case 674: //vol+ NAHORU klepeta.stopMotor(); klepeta.backward(); delay(klepetaInterval); klepeta.stopMotor(); break; case 162: //vol- DOLU klepeta.stopMotor(); klepeta.forward(); delay(klepetaInterval); klepeta.stopMotor(); break; } }//END IR //Sirena if( sirena ) { if( millis()-minSirenaTime>=sirenaInterval ) { minSirenaTime=millis(); sirenaState=!sirenaState; digitalWrite(sirenaPin,sirenaState); } }//END SIRENA }