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.
This post is also available in ru_RU.