katse 4.1
Katse temperatuuri mõõtmiseks temperatuurianduri abil.
Saadud tulemused kirjutame iga sekundi tagant Serial Monitori.
Komponendid:
Andur TMP36
5 traati
Skeem:

Kood:
const int temperaturePin = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
float voltage, degreesC, degreesF;
// kasutame analogRead(), mis tagastab sisendi väärtused vahemikul 0 ... 1023.
// koostasime getVoltage() funktsioon, mis tagastab pingeväärtus  0 ... 5,
voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 100.0;
// degreesC = voltage * 100.0;
degreesF = degreesC * (9.0/5.0) + 32.0;
Serial.print("voltage: ");
Serial.print(voltage);
Serial.print(" deg C: ");
Serial.print(degreesC);
Serial.print(" deg F: ");
Serial.println(degreesF);
//Ekraanil ilmub järgmine tekst: "voltage: 0.73 deg C: 22.75 deg F: 72.96"
delay(1000); // ootame 1 sek
}
float getVoltage(int pin)
{
return (analogRead(pin) * 0.004882814);
// teisendame pinge vahemikust 0,0 ... 5,0 V, vahemikku 0 до 1023.
}
katse 4.2
180 kraadine servo mootori kasutamine
Komponendid:
Servo
8 traati
Kasutusel on 180 kraadi pöörav servo mootor. (Võtame ladususe huvides lahti näidisprogammi: File-> Examples -> Servo)
Skeem:

Kood:
#include  <Servo.h> // nii teavitame Arduino IDE-t vajadusest kasutada Servo.h teeki (подключаем дополнительную библиотеку)
// Как только вы "подключаете" библиотеку, так сразу получаете доступ к этим функциям. Вы можете найти список функций в библиотеке
// сервопривода в: http://arduino.cc/en/Reference/Servo. Большинство библиотек доступно из меню "Файл / примеры".
Servo servo1; // Peame looma servo objekti nimega servo1 (объект управления сервоприводом)
void setup()
{
// Сейчас мы прикрепим (attach) объект servo1 к цифровому пину 9. Если вы собираетесь управлять более чем одним
// сервоприводом, Вы должны прикрепить каждый новый объект серво к своему, отдельному порту, причем это порт должен быть цифровым.
servo1.attach(9); //ütleme Arduinole, et infosuhtlus servo-objektiga servo käib läbi klemmi number 9. Tegu on digitaal-klemmiga--PWM digitaalne osa! Kontrollime, kas skeemil kasutame sama klemmi.
}
void loop()
{
int position;
servo1.write(90); //pööramise nurk =90
delay(1000); 
servo1.write(180); //pööramise nurk =180
delay(1000);
servo1.write(0); //pööramise nurk =0
delay(1000);
// servo positsiooni muutmine väike kiirusega pärisuunas:
for(position = 0; position < 180; position += 2)
{
servo1.write(position); // positsiooni muutmine
delay(20); 
}
// servo positsiooni muutmine väike kiirusega vastupäeva:
for(position = 180; position >= 0; position -= 1)
{ 
servo1.write(position); // positsiooni muutmine
delay(20); 
}
}
Katse 4.3
Töö protsess:
see kood loeb valguse ja temperatuuri väärtusi, juhib LED-i heledust vastavalt valguse tasemetele ja reguleerib servomootori asendit temperatuurinäitude põhjal, pakkudes samal ajal jadaside kaudu silumisinfot.
Komponendid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
LED (1tk)
15 traati
2 takisti
Fotoresistor (1tk)
Micro Servo (1tk)
temperatuuriandur (1tk)
Termomeetri protsess:
päevavalguses lülitub valgusandur välja ja öösel lülitub see automaatselt sisse.
Kui temperatuur on 25 ja 20 kraadi vahel, pööratakse servo 180 kraadi.
kui temperatuur on alla 20 kraadi, pööratakse servo 0 kraadile.
Reaalse elu rakendused:
Servoajamid: Kasutatakse täpseks liikumisjuhtimiseks robootikas ja automaatikas.
Temperatuuriandurid: kasutatakse temperatuuri reguleerimiseks kütte-, jahutus- ja kliimaseadmete rakendustes.
Fotoresistorid: kasutatakse valguse kontrollimiseks automaatsetes valgustussüsteemides ja valgusandurites.
Skeem:

kood:
const int led = 12;
const int sensorPin = A1; 
int lightLevel, high = 0, low = 1023;
const int temperaturePin = A0; 
Servo servo1;
void setup() {
  pinMode(led, OUTPUT); 
  servo1.attach(13);
  Serial.begin(9600);
}
void loop() {
  float voltage, degreesC, degreesF;
  voltage = getVoltage(temperaturePin); 
  degreesC = (voltage - 0.5) * 100.0;
  degreesF = degreesC * (9.0 / 5.0) + 32.0;
  Serial.print("Voltage: ");
  Serial.print(voltage);
  Serial.print(" deg C: ");
  Serial.print(degreesC);
  Serial.print(" deg F: ");
  Serial.println(degreesF);
  if (degreesC <= 25 && degreesC >= 20) {
    servo1.write(180); 
    delay(1000); 
  } else {
    servo1.write(0); 
    delay(1000); 
  }
  delay(2000); 
float getVoltage(int pin) {
  return (analogRead(pin) * 0.004882814); 
}
Uued funktsioonid:.
servo1.attach(13): See rida initsialiseerib objekti servo1, et juhtida servot, mis on ühendatud digitaalviiguga 13.
servo1.write(): Seda funktsiooni kasutatakse servo pöördenurga määramiseks. Koodis kutsutakse seda üles, et pöörata servo teatud nurga võrra sõltuvalt temperatuuri väärtusest.
Serial.begin(9600): See funktsioon initsialiseerib jadakommunikatsiooni vigade kõrvaldamise sõnumite jaoks. See seab baudikiiruseks 9600 bitti sekundis.
getVoltage: loeb analoogsignaali määratud viigult ja teisendab selle koefitsiendi abil pingeks.
Serial.print() on Arduino IDE (integreeritud arenduskeskkonna) funktsioon, mida kasutatakse andmete saatmiseks jadapordi (tavaliselt USB) kaudu silumiseks ja jälgimiseks.