Katse 2
Skeem:

Kood:
int sensorPin = 0;
int ledPin = 13;
int sensorValue = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin)
digitalWrite(ledPin, HIGH);
delay(sensorValue);
digitalWrite(ledPin, LOW);
delay(sensorValue);
float voltage = sensorValue * (5.0 / 1023.0)
Serial.println(voltage)
}
- Skeem

2. Kood
// C++ code
//
int sensorPin = 0;
int ledgreen1 = 13; // green 1
int ledyellow1 = 12; // yellow 1
int ledred1 = 11; // red 1
int ledyellow2 = 10; // yellow 2
int ledgreen2 = 9; // green 2
int ledred2 = 8; // red 2
int ledredOff = 2;
int sensorValue = 0;
int Value_new;
void setup()
{
pinMode(ledgreen1, OUTPUT);
pinMode(ledyellow1, OUTPUT);
pinMode(ledred1, OUTPUT);
pinMode(ledyellow2, OUTPUT);
pinMode(ledgreen2, OUTPUT);
pinMode(ledred2, OUTPUT);
pinMode(ledredOff, OUTPUT);
}
void green() {
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledgreen2, HIGH);
delay(500);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
delay(500);
}
void yellow() {
digitalWrite(ledyellow1, HIGH);
digitalWrite(ledyellow2, HIGH);
delay(500);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledyellow2, LOW);
delay(500);
}
void red() {
digitalWrite(ledred1, HIGH);
digitalWrite(ledred2, HIGH);
delay(500);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
delay(500);
}
void mixed() {
digitalWrite(ledgreen1, HIGH);
digitalWrite(ledred1, HIGH);
delay(500);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledred1, LOW);
digitalWrite(ledyellow1, HIGH);
digitalWrite(ledgreen2, HIGH);
delay(500);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledyellow2, HIGH);
digitalWrite(ledred2, HIGH);
delay(500);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledred2, LOW);
}
void line() {
digitalWrite(ledgreen1, HIGH);
delay(100);
digitalWrite(ledgreen1, LOW);
digitalWrite(ledyellow1, HIGH);
delay(100);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledred1, HIGH);
delay(100);
digitalWrite(ledred1, LOW);
digitalWrite(ledyellow2, HIGH);
delay(100);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledgreen2, HIGH);
delay(100);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledred2, HIGH);
delay(100);
digitalWrite(ledred2, LOW);
}
void loop()
{
Value_new = analogRead(sensorPin);
Value_new = map(Value_new, 0, 1023, 1, 6);
if (Value_new == 2) {
green();
}
else if (Value_new == 3) {
yellow();
}
else if (Value_new == 4){
red();
}
else if (Value_new == 5){
mixed();
}
else if (Value_new == 1) {
line();
}
else {
digitalWrite(ledgreen1, LOW);
digitalWrite(ledgreen2, LOW);
digitalWrite(ledyellow1, LOW);
digitalWrite(ledyellow2, LOW);
digitalWrite(ledred1, LOW);
digitalWrite(ledred2, LOW);
digitalWrite(ledredOff, HIGH);
}
}
3. Uued funktsioonid:
analogRead() – kasutatakse analoogsignaali väärtuse lugemiseks Arduino mikrokontrolleri määratud analoognõelast.
map() – kasutatakse väärtuste tõlkimiseks ühest vahemikust teise.
sensorValue = analogRead(sensorPin); – loeb analoog sisendi väärtust ja saadab tagasi täisarvu vahemikus 0 kuni 1023. See tähendab 10 bitilist täpsust (2**10 = 1024).
float voltage = sensorValue * (5.0 / 1023.0); – konverteerime väärtuse (0 – 1023) ja tagastab (0 – 5V):
Serial.begin(9600); – lähtestab Arduino jadapordi andmeedastuskiirusega 9600 bit / s.
constrain() – Funktsioon kontrollib ja vajadusel määrab uue väärtuse, nii et see oleks parameetritega määratud lubatud väärtuste piirkonnas
Random() – Juhuslike arvude genereerimiseks
4.Kasutatud komponentid:
- 11 juhtmed
- 7 LEDid
- 1 Potentiometer
5. Kirjeldus:
Tegime Kett. Sellel Kettil on 5režiimi. Lett koosneb 11 juhtmest, 7 LEDist ja 1 potionomeetrist.
6. Kus võib kasutada?
See kept sobib nii tavaliseks kodukaunistamiseks atmosfääri loomiseks kui ka piduliku jõulupuu kaunistamiseks. Kett ei ole väga meeldejääv, kuid seda ei saa märgata
7. Video