3.1. Katse Nuppude ja Slideswitch’i kasutamise võimalus

Kasutatud komponendid:
- Nupp x2
- diood x1
- Takkisti 220w x3
- juhtmeid x5
kood:
const int button1Pin = 2; //viik kunu on ühebdatud nupp1 const int button2Pin = 3; //viik kuhu on ühendatud nupp2 const int ledPin = 13; void setup() { pinMode(button1Pin, INPUT); //algväärtuse nupu viigu sisendiks pinMode(button2Pin, INPUT); //algväärtuse nupu viigu sisendiks pinMode(ledPin, OUTPUT); //algväärtuse LED viigu väljundiks } void loop() { int button1State, button2State; //nupu oleku muutujad button1State = digitalRead(button1Pin);// salvestame muutujasse nupu hetke väärtuse(HIGH või LOW) button2State = digitalRead(button2Pin); if (((button1State == LOW) || (button2State == LOW)) // kui nupu on alla vajutatud && ! ((button1State == LOW) && (button2State == LOW))) // kui nupude on alla vajutatud { digitalWrite(ledPin, HIGH); // lülitame LED sisse } else { digitalWrite(ledPin, LOW); // lülitame LED välja } }
2.- Näidis- Slideswitch’i kasutamine

kasutatud komponendid:
- juhtmeid x7
- diod x1
- lüliti x1
- aku x1
kood:
int swPin=4; int ledPin=10; int switchstate=0; void setup() { pinMode(swPin, INPUT); pinMode(ledPin, OUTPUT); } void loop() { switchstate=digitalRead(swPin); if(switchstate==HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }

kasutatud komponendid:
- juhtmeid x6
- diood x1
- photoresistor x1
- takkisti x2
kood:
const int sensorPin = 0; const int ledPin = 9; int lightLevel, high = 0, low = 1023; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); // //Serial monitori seadistamine } void loop() { // AnalogRead() kasutab väärtused vahemikus 0 (0 вольт) и 1023 (5 вольт). // AnalogWrite(), kasutatakse, et LEDi sujuvalt sisselülitada 0(ei põle) kuni 255(põleb maksimalselt). lightLevel = analogRead(sensorPin); //loeme mõõdetud analoogväärtuse // Map() teisendab sisendi väärtused ühest vahemikust teisse. Näiteks, "from" 0-1023 "to" 0-255. // Constrain() saed muutujale kindlad piirväärtused. // Näiteks: kui constrain() kohtub arvudega 1024, 1025, 1026.., siis ta teisendab need 1023, 1023, 1023..). Kui arvud vähem kui 0, siis teisendab need 0:. // lightLevel = constrain(lightLevel, 0, 255); manualTune(); // //autoTune(); // analogWrite(ledPin, lightLevel); // Выражение выше, будет изменять яркость светодиода вместе с уровнем освещенности. Чтобы сделать наоборот, заменить в analogWrite(ledPin, lightLevel) "lightLevel" на "255-lightLevel". Теперь у нас получился ночник! Serial.print(lightLevel); // prindime tulemused Serial Monitori (вывод данных с фоторезистора (0-1023)) Serial.println(""); delay(1000); } void manualTune() { lightLevel = map(lightLevel, 300, 800, 0, 255); // kaardistame selle analoogväljundi vahemikku (будет от 300 темно, до 800 (светло)). lightLevel = constrain(lightLevel, 0, 255); } void autoTune() { if (lightLevel < low) { low = lightLevel; } if (lightLevel > high) { high = lightLevel; } lightLevel = map(lightLevel, low+10, high-30, 0, 255); lightLevel = constrain(lightLevel, 0, 255); }
Ülesanne 3 Öölamp

Kasutatud komponendid:
- Valgustakisti x1
- Nupp x1
- RGB LED x1
- Potentsiomeeter x1
- juhteid x1
kood:
int firstPin = 4; int secondPin = 3; int thirdPin = 2; int potentiometer = A0; int photoresistor = A1; void setup() { Serial.begin(9600); pinMode(firstPin, OUTPUT); pinMode(secondPin, OUTPUT); pinMode(thirdPin, OUTPUT); } void loop() { int photoresistorValue = analogRead(photoresistor); int potentiometerValue = analogRead(potentiometer); if (photoresistorValue < 100 || potentiometerValue <= 10) { analogWrite(firstPin, 0); analogWrite(secondPin, 0); analogWrite(thirdPin, 0); } else { int redBrightness = map(potentiometerValue, 10, 1023, 0, 255); int greenBrightness = map(potentiometerValue, 10, 1023, 0, 255); int blueBrightness = map(potentiometerValue, 10, 1023, 0, 255); analogWrite(firstPin, redBrightness); analogWrite(secondPin, greenBrightness); analogWrite(thirdPin, blueBrightness); } }