Pokojový teploměr
Každých 10 sekund přečte hodnotu z adresy senzoru a vypíše ji na displej. Pro okrasu je zde i malá uvítací animace při zapnutí teploměru.
Model lokátoru se skládá z echo senzoru umístěném na desce, která se za pomocí servomotorku. Pokud senzor zjistí předmět v definované vzdálenosti zastaví se na 1 sekundu a oznámí to zvukem z buzzeru a pak nadále pokračuje v pohybu. Pohyb je definován jako kyvadlový – o 180 doprava/doleva a zpět ve smyčce.
Lokátor je složen ze základních Arduino součástek umístěných na konstrukci sestavené ze stavebnice Merkur.
Jedná se o projekt pro začátečníky.
#include <Servo.h> Servo myservo; // create servo object to control a servo int servoPin = 9; int trigPin = 11; //Trig - green Jumper int echoPin = 12; //Echo - yellow Jumper int speakerPin = 4; //setup: int alarmDistanceinCm = 30;//cm int pauseIfDistance = 2000; // ms void setup() { //Serial Port begin Serial.begin (9600); //Define inputs and outputs pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(speakerPin, OUTPUT); myservo.attach(servoPin); // attaches the servo on pin 9 to the servo object } void loop() { int i=0; int servoPosition = 0; digitalWrite(speakerPin,LOW); //clock direction movements: for (i=0;i<180;i++) { ProcessEachServoStep(i); } //counter clock direction movements: for (i=180;i>=0;i--) { ProcessEachServoStep(i); } } void ProcessEachServoStep(int i) { int distance=0; distance= GetDistanceCm(); Serial.println(distance); if (distance<alarmDistanceinCm) { ProcessAlarm(); } myservo.write(i); delay(20); } void ProcessAlarm() { //Code for alarm, e.g. buzzer: tone(4,500); delay(pauseIfDistance); Serial.println("ALARM"); noTone(4); } int GetDistanceCm() { //method return distance from sensor in cm: digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); pinMode(echoPin, INPUT); long duration = pulseIn(echoPin, HIGH); // convert the time into a distance int cm = (duration/2) / 29.1; return cm; }
Každých 10 sekund přečte hodnotu z adresy senzoru a vypíše ji na displej. Pro okrasu je zde i malá uvítací animace při zapnutí teploměru.
Tento projekt slouží k měření teploty, tlaku a času a k jejich zobrazení na OLED displeji. Současně data vypisuje na sériovou linku.