This is an old revision of the document!
/* Nimetus: Näide #1.1 Digitaalsed sisend-väljundid Kirjeldus: Nuppu korraks vajutades vilgub LED 3 korda */ // Konstandid const int nupp = A0; // Viik kuhu on ühendatud nupp const int led = 13; // Viik kuhu on ühendatud roheline LED // Globaalsed muutujad int nupuOlek = 0; // Nupu oleku muutuja ja algväärtustamine void setup() { pinMode(led, OUTPUT); // algväärtustame LED viigu väljundiks pinMode(nupp, INPUT_PULLUP); // algväärtustame nupu viigu sisendiks ja aktiveerime sisemise pull-up takisti } void loop(){ nupuOlek = digitalRead(nupp); // salvestame muutujasse nupu hetke väärtuse if (nupuOlek == LOW) { // Kui nupu on alla vajutatud for(int i = 0; i < 3; i++){ digitalWrite(led, HIGH); // süütame LED-i delay(200); //viide led põlemas hoidmiseks digitalWrite(led, LOW); // kustutame LED-i delay(200); //viide led kustus hoidmiseks } } }
NB! LED vilkumisel on sees pikad viited, mistõttu vilkumise välja lülitamiseks tuleb lülitit pikemalt all hoida.
/* Nimetus: Näide #1.2 Digitaalsed sisend-väljundid Kirjeldus: LED vilkumise sisse/välja lülitamine lülitiga */ // Konstandid const int nupp = A0; // Viik kuhu on ühendatud nupp const int led = 13; // Viik kuhu on ühendatud roheline LED // Globaalsed muutujad bool vilguta = false; //muutuja vilgutamise sisse välja lülitamiseks void setup() { pinMode(led, OUTPUT); // algväärtustame LED viigu väljundiks pinMode(nupp, INPUT_PULLUP); // algväärtustame nupu viigu sisendiks ja aktiveerime sisemise pull-up takisti } // Algus identne näitega #1.1 void loop(){ if(digitalRead(nupp) == LOW){ //kontrolli kas lülitit on vajutatud vilguta = !vilguta; //inverteerime vilgutamise muutuja, et vilkumine sisse/välja lülitada delay(50); //kontaktide värelemise viide (debounce) while(digitalRead(nupp) == LOW); //ootab kuni nupp lastakse lahti } if (vilguta == 1) { // Kui nupu olek on madal delay(1000); //led kustus hoidmise viide digitalWrite(led, HIGH); // süütame LED-i delay(1000); // led põlemas hoidmise viide } digitalWrite(led, LOW); // kustutame LED-i }
/* Nimetus: Näide #1.3 Digitaalsed sisend-väljundid Kirjeldus: Iga nupu vajutusega vilgub LED aina rohkem kordi */ // Konstandid const int nupp = A0; // Viik kuhu on ühendatud nupp const int led = 13; // Viik kuhu on ühendatud roheline LED // Globaalsed muutujad int nupuVajutusi = 0; void setup() { pinMode(led, OUTPUT); // algväärtustame LED viigu väljundiks pinMode(nupp, INPUT_PULLUP); // algväärtustame nupu viigu sisendiks ja aktiveerime sisemise pull-up takisti } void loop() { if (digitalRead(nupp) == LOW) { // kontrollib kas nupu olek on madal nupuVajutusi++; //liidame ühe muutuja väärtusele delay(50); //lüliti kontaktide värelemise (debounce) efekti mõju vähendamiseks väike viide while (digitalRead(nupp) == LOW) { //tsükkel jätkub lõputult kuni nupu olek on madal // Ootame nupu lahtilaskmist } for(int i = 0; i < nupuVajutusi*2;i++){ digitalWrite(led, !digitalRead(led)); // LED viigu väljund inverteeritakse kasutades viigu hetke olekut delay(200); //viide, et hoida led kustus/põlemas } delay(50); //lüliti kontaktide värelemise (debounce) efekti mõju vähendamiseks väike viide } }
/* Nimetus: Näide #2.1 LED juhtimine potentsiomeetriga Kirjeldus: Potentsiomeetri pööramisel üle etteantud piiri süttib LED */ const int pote = A0; // määrame potentsiomeetri ühendusviigu (sisend) const int led = 13; // määrame LED ühendusviigu (väljund) int poteOlek = 0; // muutuja potentsiomeetri väärtuse salvestamiseks void setup() { //mikrokontrolleri viigud on tavaolekus sisendid pinMode(led, OUTPUT); // algväärtustame LED viigu väljundiks } void loop() { poteOlek = analogRead(pote); // loeme anduri väärtuse if(poteOlek >= 1023 || poteOlek <= 0)digitalWrite(led, HIGH); // kustutame LED-i else digitalWrite(led, LOW); // süütame LED-i }
/* Nimetus: Näide #2.2 LED juhtimine potentsiomeetriga Kirjeldus: Potentsiomeetri asendist sõltub LED vilkumise sagedus */ const int pote = A0; // määrame potentsiomeetri ühendusviigu (sisend) const int led = 13; // määrame LED ühendusviigu (väljund) const int fikseeritud_viide = 512; int poteOlek = 0; // muutuja potentsiomeetri väärtuse salvestamiseks void setup() { //mikrokontrolleri viigud on tavaolekus sisendid pinMode(led, OUTPUT); // algväärtustame LED viigu väljundiks } void loop() { poteOlek = analogRead(pote); // loeme anduri väärtuse digitalWrite(led, HIGH); // kustutame LED-i if(poteOlek > 512) delay(1023 - poteOlek); // tekitame viite <poteOlek> millisekundit else delay(fikseeritud_viide); // tekitame viite <poteOlek> millisekundit digitalWrite(led, LOW); // süütame LED-i if(poteOlek < 512) delay(poteOlek); // tekitame viite <poteOlek> millisekundit else delay(fikseeritud_viide); // tekitame viite <poteOlek> millisekundit }