Tänään kokeilimme uudestaan tuota valovastus+ledi -kompoa. Pienen pohdinnan jälkeen saimme lisättyä toisen valovastuksen ja toisen ledin samaan kytkentään. Koodiin lisäsimme toisen valovastuksen (arvo2) ja muutimme valovastuksen arvon lukemisen arvo1 ja arvo2 keskiarvoon.
Toisen ledin kytkimme ensimmäisen kanssa rinnan, samaan pinniin.
Toimii! :)
Piirrettiin myös kytkentäkaavio kahdesta valovastuksesta ja kahdesta ledistä..
- V & M
17.3.2014
11.3.2014
Valovastus ja ledi - milloin on pimeää?
Tässä on muutamaan otteeseen yritetty saada valovastuksen arvoilla ledi syttymään.
Siis: valovastuksen jännitteen arvo < x, jolloin ledi syttyy, muutoin ledi ei pala.
Tässä yksi monesta epäonnistuneesta versiosta:
Netistä löytyi muutama erilainen malli, joilla kytkentä on saatu toimimaan meidän vaatimalla tavalla tai siitä hieman poiketen.
Monien koodimuutosten (monta eri koodia tuli tehtyä) jälkeen päädyin tällaiseen:
int analogInput = A0; // Potentiometrin keskimmäinen jalka kytketään tähän pinniin
int arvo = 0; // jännitteen arvo tallentaan tähän muuttujaan
const int ledPin = 12;
void setup()
{
pinMode(ledPin, OUTPUT);
// Seuraava komento avaa sarjaliikenteen tietokoneelle nopeudella 9600 bps:
Serial.begin(9600);
}
void loop() {
// Sitten luetaan jännite analogisesta inputista:
arvo = analogRead(analogInput);
// Tulostetaan saalis sarjaporttiin:
Serial.print("Jännite = " );
Serial.println(arvo); // "Serial.println" komento vaihtaa riviä tulostuksen jälkeen
if (arvo<500)
{
digitalWrite(ledPin, HIGH);
// pieni tauko:
delay(5);
}
else if (arvo>500)
{
digitalWrite(ledPin, LOW);
delay(5);
}
}
Ja tältä tämä koodi näytti:
Seuraavaksi pitää pohtia, mikä tuo jännitteen raja-arvo on pimeälle. Tulee myös miettiä miten koodia ja kytkentää tulee muuttaa, että siinä on kaksi lediä (jotka toimivat samaan aikaan) ja kaksi valovastusta, joiden jännitteiden keskiarvoa arduino lukee.
- V (M on valloittamassa maailmaa, niittämässä mainetta ja kunniaa...)
Siis: valovastuksen jännitteen arvo < x, jolloin ledi syttyy, muutoin ledi ei pala.
Tässä yksi monesta epäonnistuneesta versiosta:
Netistä löytyi muutama erilainen malli, joilla kytkentä on saatu toimimaan meidän vaatimalla tavalla tai siitä hieman poiketen.
Monien koodimuutosten (monta eri koodia tuli tehtyä) jälkeen päädyin tällaiseen:
int analogInput = A0; // Potentiometrin keskimmäinen jalka kytketään tähän pinniin
int arvo = 0; // jännitteen arvo tallentaan tähän muuttujaan
const int ledPin = 12;
void setup()
{
pinMode(ledPin, OUTPUT);
// Seuraava komento avaa sarjaliikenteen tietokoneelle nopeudella 9600 bps:
Serial.begin(9600);
}
void loop() {
// Sitten luetaan jännite analogisesta inputista:
arvo = analogRead(analogInput);
// Tulostetaan saalis sarjaporttiin:
Serial.print("Jännite = " );
Serial.println(arvo); // "Serial.println" komento vaihtaa riviä tulostuksen jälkeen
if (arvo<500)
{
digitalWrite(ledPin, HIGH);
// pieni tauko:
delay(5);
}
else if (arvo>500)
{
digitalWrite(ledPin, LOW);
delay(5);
}
}
Ja tältä tämä koodi näytti:
Seuraavaksi pitää pohtia, mikä tuo jännitteen raja-arvo on pimeälle. Tulee myös miettiä miten koodia ja kytkentää tulee muuttaa, että siinä on kaksi lediä (jotka toimivat samaan aikaan) ja kaksi valovastusta, joiden jännitteiden keskiarvoa arduino lukee.
- V (M on valloittamassa maailmaa, niittämässä mainetta ja kunniaa...)
Tilaa:
Blogitekstit (Atom)