Katse 4

Katse 4.1

Komponendid:

Arduino UNO 1 tk.

Arendusplaat 1 tk.

Juhtmed 4 tk.

Termoandur 1 tk.

const int temperaturePin = 0;

void setup()
{
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);
delay(1000);
}

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

Katse 4.2

Komponendid:

Arduino UNO 1 tk.

Arendusplaat 1 tk.

Juhtmed 8 tk.

Servo mootor 1 tk.

#include  <Servo.h>
Servo servo1; 
void setup()
{
  servo1.attach(9);
}
void loop()
{
  int position;

  servo1.write(90); 
  delay(1000); 
  servo1.write(180); 
  delay(1000);
  servo1.write(0);
  delay(1000);

  for(position = 0; position < 180; position += 2)
  {
  servo1.write(position); 
  delay(20); 
  }

  for(position = 180; position >= 0; position -= 1)
  { 
  servo1.write(position); 
  delay(20); 
  }
}

Ülesanne Temperatuuritundlik servolülitus

Servomootor pöörleb 180 kraadi, kui temperatuur on üle 23,3, fototakisti väärtus on suurem või võrdne 200 ja põleb siniselt, servomootor pöörleb 0 kraadi, kui temperatuur on madalam kui 22,3, fototakisti väärtus on suurem kui või võrdne 200-ga ja põleb lillalt, kui temperatuur on kõrgem 22 ja alla 23, on fototakisti väärtus suurem kui 200 või sellega võrdne, siis on punane värv sisse lülitatud. Kui fototakisti väärtus on alla 200, pöörleb servomootor 90 kraadi ja roheline värv on sisse lülitatud.

Komponendid:

Arduino UNO 1 tk.

Arendusplaat 1 tk.

RGB LED 1 tk.

Takistid 4 tk.

Juhtmed 20 tk.

Termoandur 1 tk.

fototakisti 1 tk.

Servo mootor 1 tk.

Elektrolüüt kondensaator 1 tk.

code:

#include  <Servo.h>
const int RED_PIN = 6;
const int GREEN_PIN = 4;
const int BLUE_PIN = 5;
Servo servo1; 
const int lightSensorPin = 1;
const int temperaturePin = 0;
void setup()
{
  servo1.attach(9);
  Serial.begin(9600);
  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(BLUE_PIN, OUTPUT);
}
void loop()
{
  float voltage, degreesC;
  int lightValue = analogRead(lightSensorPin);
  digitalWrite(RED_PIN,LOW);
  digitalWrite(GREEN_PIN,LOW);
  digitalWrite(BLUE_PIN,LOW);
  voltage = getVoltage(temperaturePin);
  degreesC = (voltage - 0.5) * 100.0;
  Serial.print(degreesC);
  delay(1000);
  if (lightValue>=200)
  {
    if (degreesC < 22.3)
    {
      servo1.write(0); 
        digitalWrite(RED_PIN,HIGH);
        digitalWrite(GREEN_PIN,LOW);
      digitalWrite(BLUE_PIN,HIGH);
        delay(1000); 
    }
    else if (degreesC > 23.3)
    {
      servo1.write(180);  
        digitalWrite(RED_PIN,LOW);
        digitalWrite(GREEN_PIN,LOW);
      digitalWrite(BLUE_PIN,HIGH);
      delay(1000);
    }
    else if (degreesC > 22 && degreesC <23)
    {
      digitalWrite(RED_PIN,HIGH);
      digitalWrite(GREEN_PIN,LOW);
      digitalWrite(BLUE_PIN,LOW);
      delay(1000);
    }
  }
  else
  {
    digitalWrite(RED_PIN,LOW);
    digitalWrite(GREEN_PIN,HIGH);
    digitalWrite(BLUE_PIN,LOW);
    servo1.write(90);
  delay(1000);
  }
}
float getVoltage(int pin)
{
    return (analogRead(pin) * 0.004882814);
}

et