/* * Naprogramujeme počítadlo zobrazené na číslicovce * Pomocí spínačů budeme přičítat a odečítat hodnotu * * Zapojení drátků * Saimon 1: 116-X1, 117-plus, 118-mínus, 119-X2, 120-plus, 121-mínus * X3-88, X4-89, X5-90, X6-91, napájení číslicovky-plus, 109-mínus * * Saimon 4: X1-D02, X2-D03, X3-D04, X4-D05, X5-D06, X6-D07, 108-D08 */ int num1pin = 7, num2pin = 6, num4pin = 5, num8pin = 4; int hodnotaCisla = 0; int spinacS1 = 2, spinacS2 = 3; int reproPin = 8; void zobrazCislo (int cislo){ // Funkce, která převede (pomocí operace bitový AND) číslo na binární kod, který zapíše na výstupy digitalWrite(num1pin,cislo&1); digitalWrite(num2pin,cislo&2); digitalWrite(num4pin,cislo&4); digitalWrite(num8pin,cislo&8); } void setup() { pinMode (num1pin,OUTPUT); pinMode (num2pin,OUTPUT); pinMode (num4pin,OUTPUT); pinMode (num8pin,OUTPUT); pinMode (spinacS1, INPUT); pinMode (spinacS2, INPUT); zobrazCislo (hodnotaCisla); } void loop() { if ( digitalRead (spinacS1)) { // Zjistíme, zda byl stisknutý S1 if (hodnotaCisla > 0 ) { hodnotaCisla--; // Snížíme hodnotu čísla, nesmíme jít pod nulu tone (reproPin, 1000, 50 ); zobrazCislo (hodnotaCisla); delay (200); } } if ( digitalRead (spinacS2)) {// Stejně zjistíme, zda byl stisklý S2 if (hodnotaCisla < 15 ) { hodnotaCisla++; // Nechceme víc než 15 tone (reproPin, 1000, 50 ); zobrazCislo (hodnotaCisla); delay (200); } } }