3.1. Katse Nuppude ja Slideswitch’i kasutamise võimalus
Komponendid:
2 Nuppu
1 LED
2tk 10k oom taakisti
1tk 330 om takisti
7 traati
Skeem:

—–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
Skeem:

—–Kood—–
// C++ code
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);
}
}
3.2. Katse Photoresistor
Skeem:

—–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()
{
manualTune(); //
//autoTune(); //
analogWrite(ledPin, lightLevel);
Serial.print(lightLevel);
Serial.println("");
delay(1000);
}
void manualTune()
{
lightLevel = map(lightLevel, 300, 800, 0, 255);
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
Toimingu kirjeldus
Valgusbarjääri töötamine kolmes režiimis patentsiomeetri abil.
Komponendid:
- Arduino Uno R3
- Väike arduinoplaat
- Fotoresistor
- Potentsiomeeter
- 3 takistit (220 Om) ja 1 takisti (10 kOm)
- RGB LED
Töö kirjeldus:
Öövalgustus on RGB LED, mis muudab värvi sõltuvalt potentsiomeetri asendist.
Esimeses asendis – punane, teises asendis – roheline, kolmandas asendis – sinine.
LED lülitub sisse, kui fotoresistor on pimedas.
Kus kasutatakse patareisid, fotoresistoreid jne.:
Nuppe, patareisid ja fotoresistoreid kasutatakse elektroonikas, autotööstuses, tööstusprotsessides, meditsiinitehnoloogias ja muudes rakendustes funktsioonide kontrollimiseks, toiteallikaks ja keskkonnakontrolliks.
Skeem:

Programm:
//Пины светодиода
int RED_PIN = 13;
int BLUE_PIN = 8;
int GREEN_PIN = 12;
int photo = 0; //Фоторезистор
int lightLevel = 0;
int sensorPin = 1; // Потенциометр
int sensorValue = 0;
void setup()
{
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
pinMode(photo, OUTPUT);
pinMode(sensorPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
lightLevel = analogRead(photo);
lightLevel = map(lightLevel, 300, 900, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
Serial.print(lightLevel);
Serial.println("");
sensorValue=analogRead(sensorPin);
sensorValue=map(sensorValue, 0, 1023, 0, 3);
sensorValue=constrain(sensorValue, 0, 3);
Serial.println(sensorValue);
//Первое положение (красный)
if (sensorValue == 1 && lightLevel > 80)
{
digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
}
else if(sensorValue == 1 && lightLevel < 255 )
{
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
}
//Первое положение (зеленый)
else if (sensorValue == 2 && lightLevel > 80)
{
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
}
else if(sensorValue == 2 && lightLevel < 255 )
{
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
}
//Первое положение (синий)
else if (sensorValue == 3 && lightLevel > 80)
{
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(RED_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
}
else if(sensorValue == 3 && lightLevel < 255 )
{
digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);
}
}
Video:
Uued funktsioonid:
sensorValue = analogRead(sensorPin); lightLevel = analogRead(photo);