ROB. Light chain. Test 2

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)
}
  1. 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