katsed 4

Temperatuuri andur, Servo mootor

4.1 Katse Temperatuuri andur

Ühendamise skeem:

andur tuvastab temperatuuri tõusud ja langused

Komponeendid:

—————————————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.
}

—————————————————————————————

4.2. Katse Servo kasutamine

Ühendamise skeem:

Mootor hakkab liikuma, kui saab energiat

Komponeendid:

—————————————Kood—————————————

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);
}
}

—————————————————————————————

4 Temperatuuritundlik servolülitus(Kasvuhoone temperatuuri reguleegimine)

Ühendamise skeem:

Komponeendid:

NameQuantityComponent
U11Arduino Uno R3
SERVO11Micro Servo
U21Temperature Sensor [TMP36]
R11Photoresistor
R2
R3
2220 Ω Resistor
D11Red LED

—————————————Kood—————————————

#include <Servo.h>
Servo servo1;
const int temperaturePin = 0;
const int redledPin = 13;

float voltage, degreesC, lightVal;

const int lightPin = 1;
int lightLevel, high = 0, low = 1023;

float getVoltage(int pin) {
  return (analogRead(pin) * 0.004882814);
}

int autoTune(int lightLevel) {
   if (lightLevel < low) {
    low = lightLevel;
  }
  if (lightLevel > high) {
    high = lightLevel;
  }
  lightLevel = map(lightLevel, low+10, high-30, 0, 255);
  lightLevel = constrain(lightLevel, 0, 255);
  return lightLevel;
}

void setup() {
  servo1.attach(11);
  pinMode(temperaturePin, INPUT);
  pinMode(redledPin, OUTPUT);
  pinMode(lightPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  voltage = getVoltage(temperaturePin);
  degreesC = (voltage - 0.5) * 100.0;
  if (degreesC <= 24) {
    servo1.write(0);
  } else if (degreesC > 24) {
    servo1.write(180);
  }
  lightLevel = autoTune(analogRead(lightPin));
  analogWrite(redledPin, lightLevel);
  Serial.println(degreesC);
  delay(500);
}

Video:

Rakendus Valguskett:

Arvan, et see sobib ideaalselt taimedele või näiteks taimedele: kui on pime ja külm, läheb taimega kast kinni ja tuli süttib ning hommikul, kui läheb soojemaks, läheb kast lahti ja valgus kustub. välja.

Töö protsess:

Mootor hakkab tööle, kui temperatuuriandur soojeneb ja jahtub,
Tuli süttib, kui tuli kustub, ja kustub, kui tuli uuesti süttib.