Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*******************************************************
- Dil 6 - Infra dálkový ovladač - rozšířený
- Tento program testuje INFRA přijímač a dálkový ovladač KEYES
- úprava © Aleš Müller, Březen 2014,
- Verze 2
- ********************************************************/
- //použité knihovny
- #include "IRremote.h"
- #include
- LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //piny pro displej
- int receiver = 19; // pin 1 na IR přijímači na Arduino digital pin 19 (Arduino MEGA), pro UNO musíte upravit.
- int sekundy = 0; // řádek, kde se mají vypisovat sekundy
- int tlacitka = 1; // řádek, kde se mají vypisovat tlacitka
- IRrecv irrecv(receiver); // vytvoříme instanci 'irrecv'
- decode_results results; // vytvoříme instanci 'decode_results'
- void setup()
- {
- Serial.begin(9600);
- Serial.println("www.santy.cz");
- Serial.println("Dil 6 - Infra cidlo dalkovy ovladac");
- irrecv.enableIRIn(); // Start přijímače
- lcd.begin(16, 2); // start knihovny pro LCD
- lcd.setCursor(0,0); // sloupec 0 , řádek 0
- lcd.print(" www.santy.cz "); // jednoduchý výpis na LCD
- lcd.setCursor(0,1); // sloupec 0 , řádek 1
- lcd.print(" Infra + 8xrele ");
- delay(5000); // pauza 5 sec
- lcd.clear(); // vymažeme displej
- pinMode(23, OUTPUT); //relé číslo jedna, připojeno na pin 23
- pinMode(25, OUTPUT); //a analogicky dále
- pinMode(27, OUTPUT);
- pinMode(29, OUTPUT);
- pinMode(31, OUTPUT);
- pinMode(33, OUTPUT);
- pinMode(35, OUTPUT);
- pinMode(37, OUTPUT);
- }
- void loop()
- {
- lcd.setCursor(0,sekundy); // sloupec 0 , řádek
- lcd.print("Od startu - ");
- lcd.print(millis()/1000);
- lcd.setCursor(0,tlacitka); // sloupec 0 , řádek
- lcd.print(" stisknete neco ");
- if (irrecv.decode(&results)) // přijmul přijímač nějaký IR signál?
- {
- // Serial.println(results.value, HEX); // odkomentujte, chcete li vidět přímo přijatý signál, vhodné pro neznámé vysílače, TV apod.
- translateIR();
- irrecv.resume(); // a přijímáme další hodnoty
- }
- }
- /*-----( Deklarace uživatelských funkcí )-----*/
- void translateIR()
- // popis pro KEYES dálkový ovladač - IR kódy
- {
- switch(results.value)
- {
- case 0xFF629D: Serial.println(" NAHORU"); break;
- case 0xFF22DD: Serial.println(" LEVA"); break;
- case 0xFF02FD: Serial.println(" -OK-"); prepniLCD(); break; //když tohle stisknuto voláme proceduru "prepniLCD"
- case 0xFFC23D: Serial.println(" PRAVA"); break;
- case 0xFFA857: Serial.println(" DOLU"); break;
- case 0xFF6897: Serial.println(" 1"); prepniRele(23); break;
- case 0xFF9867: Serial.println(" 2"); prepniRele(25); break;
- case 0xFFB04F: Serial.println(" 3"); prepniRele(27); break;
- case 0xFF30CF: Serial.println(" 4"); prepniRele(29); break;
- case 0xFF18E7: Serial.println(" 5"); prepniRele(31); break;
- case 0xFF7A85: Serial.println(" 6"); prepniRele(33); break;
- case 0xFF10EF: Serial.println(" 7"); prepniRele(35); break;
- case 0xFF38C7: Serial.println(" 8"); prepniRele(37); break;
- case 0xFF5AA5: Serial.println(" 9"); VsechnaRele(true); break;
- case 0xFF42BD: Serial.println(" * (HVEZDA)"); break;
- case 0xFF4AB5: Serial.println(" 0"); VsechnaRele(false); break;
- case 0xFF52AD: Serial.println(" # (KRIZEK)"); break;
- case 0xFFFFFFFF: Serial.println(" OPAKOVANI PREDCHOZIHO ");break;
- default:
- Serial.println(" nezname tlacitko ");
- }
- delay(500); // NEDÁVEJTE MENŠÍ PAUZU !!
- }
- void prepniLCD () {
- if(sekundy == 0){ //pokud je radek pro sekundy 0, změníme to na opačně
- sekundy = 1;
- tlacitka = 0;
- lcd.clear(); // vymažeme displej
- }else{
- sekundy = 0;
- tlacitka = 1;
- lcd.clear(); // vymažeme displej
- }
- }
- void prepniRele (int Cislo) { // přepni relé na pinu, který posíláme v proměnné Cislo
- if(digitalRead(Cislo)){
- digitalWrite(Cislo, LOW);
- }else{
- digitalWrite(Cislo, HIGH);
- }
- }
- void VsechnaRele (boolean STAV) { //dle potreby vypneme anebo zapneme všechna relé
- for (int i=23; i <= 37; i = i + 2){
- if(STAV) digitalWrite(i, LOW);
- if(!STAV) digitalWrite(i, HIGH);
- delay(10);
- }
- }
- /* ( THE END ) */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement