*/ Tässä luetaan kytkintä ja sytytetään ja sammutetaan lediä. Koodi toimii yhtä hyvin
millä tahansa sensorilla ja aktuaattorilla.
/*
const int nappiPin = 2; // liitetään painonappi digitaaliseen piinniin 2
const int lediPin = 13; // määritellään, että liitetään ledi pinniin 13
int nappiTila = 0; // määritellään muuttuja nappiTila
boolean lediTila = false; // määritellään boolean tyyppinen muuttuja nimeltä lediTila
// (voi olla ainoastaan true tai false
void setup() {
pinMode(lediPin, OUTPUT);
pinMode(nappiPin, INPUT);
}
void loop() {
nappiTila = digitalRead(nappiPin);
delay(50); // napin värähtelyt pois
// if lauseeseen mennään vain jos nappi on päällä ja ledi on sammuksissa
if (nappiTila == HIGH && lediTila == false)
{
digitalWrite(lediPin, HIGH); // sytytetään ledi
lediTila = true; // lopuksi määritellään boolean muuttuja lediTila arvoon true
}
// if lauseeseen mennään vain jos kytkin on pois ja ledi on päällä (lediTila on true)
if ( nappiTila == LOW && lediTila == true)
{
digitalWrite(lediPin, LOW); // sammutetaan ledi
lediTila = false; // lopuksi määritellään boolean muuttuja lediTila takaisin
// alkuperäiseen arvoon false
}
}
*/ Tässä on hieman edelleen kehitelty edellistä esimerkkikoodia. Koodissa luetaan
analogiseen inputpinniin A2 kytketyn LDR vastuksen antamaa arvoa, ja liikutetaan
ympäri pyörivää servoa (kytketty pinniin 9) /*
#include <Servo.h>
int analoginput = A2; // määritellään analoginen pinni A2 input pinniksi
int lediPin = 13; // määritellään pinni, johon ledi kytketään
int LDRarvo = 0;
boolean lediTila = false;
boolean servoTila = false;
Servo ekaServo; // luodaan servo-objekti nimeltä ekaServo
void setup()
{
ekaServo.attach(9); // käynnistää ekaServo nimisen servo-objektin pinnissä 9
ekaServo.write(90); // asettaa servon pysymään paikallaan
delay(1000); // servo tarvitsee aikaa liikkua
pinMode(lediPin, OUTPUT);
Serial.begin(9600); // Komento avaa sarjaliikenteen tietokoneelle nopeudella 9600 bps
}
void loop()
{
LDRarvo = analogRead(analoginput); // Luetaan jännite analogisesta inputista:
delay(50); // pieni tauko
Serial.print("LDRarvo = " ); // Tulostetaan saalis sarjaporttiin
Serial.println(LDRarvo); // "Serial.println" komento vaihtaa riviä tulostuksen jälkeen
delay(100); // pieni tauko
if(LDRarvo <= 500 && lediTila == false && servoTila == false) // if lauseeseen
// mennään vain jos LDRarvo <= 500 ja ledi on sammuksissa
{
digitalWrite(lediPin, HIGH); // sytytetään led
ekaServo.write(70); // käskee servon kääntyä
delay(1000); // sekunnin tauko
ekaServo.write(90); // käskee servon pysähtyä ja jäädä paikoilleen
delay(1000); // sekunnin tauko
lediTila = true; // määritellään boolean muuttuja lediTila arvoon true
servoTila = true; // määritellään boolean muuttuja servoTila arvoon true
}
if (LDRarvo > 500 && lediTila == true && servoTila == true) // if lauseeseen
// mennään vain jos kytkin on pois ja ledi on päällä
{
digitalWrite(lediPin, LOW); // sammutetaan led
ekaServo.write(110); // käskee servon kääntyä
delay(1000);
ekaServo.write(90); // käskee servon pysähtyä ja jäädä paikoilleen
delay(1000);
lediTila = false; // määritellään boolean muuttuja takaisin arvoon false
servoTila = false; // määritellään boolean muuttuja takaisin arvoon false
}
}