Wstęp:
Do skonstruowania tego schematu potrzebujemy dowolnego servo oraz jakiegokolwiek potencjometru.
Nie musimy także pobierać żadnej nowej biblioteki do obsługi projektu, ponieważ wszystkie komendy są już wgrane w Arduino IDE co dodatkowo upraszcza sprawę.
Zasada działania:
1. Arduino odbiera analogową wartość podłączonego do pinu (A0) potencjometru (0 - 1023)
2. Wartość z potencjometru jest przeliczana na kąt obrotu servomechanizmu (0-180 stopni)
3. Obracając gałką potencjometru zmieniamy wskazania na pinie (A0) i tym samym obracamy servem.
Kod programu do servo:
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}
poniedziałek, 14 kwietnia 2014
niedziela, 13 kwietnia 2014
Arduino ultradźwiękowy miernik odległości HC-SR04
Wstęp:
Kod do tego urządzenia nie należy do mnie. Szukałem na internecie najprostszego szkicu do sprawdzenia tego układu i znalazłem go na następującej stronie http://electronut.in/tag/arduino-2/ mimo wszystko pozwoliłem sobie zamieścić ten kod na tej stronie żeby w razie potrzeby móc szybko go znaleźć.
Zasada działania:
1. Czujnik HC-SR04 mierzy falami odległość do przeszkody.
2. Zmierzoną odległość (w cm) czujnik pokazuje nam na ekranie serial monitora.
Kod programu dla ultradźwiękowego miernika odległości HC-SR04
#include "Arduino.h"
int pinTrigger = 2;
int pinEcho = 4;
void setup()
{
// initialize serial comms
Serial.begin(9600);
// set pins
pinMode(pinTrigger, OUTPUT);
pinMode(pinEcho, INPUT);
}
void loop()
{
// send a 10us+ pulse
digitalWrite(pinTrigger, LOW);
delayMicroseconds(20);
digitalWrite(pinTrigger, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrigger, LOW);
delayMicroseconds(20);
// read duration of echo
int duration = pulseIn(pinEcho, HIGH);
if(duration > 0) {
// dist = duration * speed of sound * 1/2
// dist in cm = duration in us * 1 x 10^{-6} * 340.26 * 100 * 1/2
// = 0.017*duration
float dist = 0.017 * duration;
Serial.println(dist);
}
// wait
delay(200);
}
Kod do tego urządzenia nie należy do mnie. Szukałem na internecie najprostszego szkicu do sprawdzenia tego układu i znalazłem go na następującej stronie http://electronut.in/tag/arduino-2/ mimo wszystko pozwoliłem sobie zamieścić ten kod na tej stronie żeby w razie potrzeby móc szybko go znaleźć.
Zasada działania:
1. Czujnik HC-SR04 mierzy falami odległość do przeszkody.
2. Zmierzoną odległość (w cm) czujnik pokazuje nam na ekranie serial monitora.
Kod programu dla ultradźwiękowego miernika odległości HC-SR04
#include "Arduino.h"
int pinTrigger = 2;
int pinEcho = 4;
void setup()
{
// initialize serial comms
Serial.begin(9600);
// set pins
pinMode(pinTrigger, OUTPUT);
pinMode(pinEcho, INPUT);
}
void loop()
{
// send a 10us+ pulse
digitalWrite(pinTrigger, LOW);
delayMicroseconds(20);
digitalWrite(pinTrigger, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrigger, LOW);
delayMicroseconds(20);
// read duration of echo
int duration = pulseIn(pinEcho, HIGH);
if(duration > 0) {
// dist = duration * speed of sound * 1/2
// dist in cm = duration in us * 1 x 10^{-6} * 340.26 * 100 * 1/2
// = 0.017*duration
float dist = 0.017 * duration;
Serial.println(dist);
}
// wait
delay(200);
}
poniedziałek, 7 kwietnia 2014
Arduino miernik wilgotności podłoża
Wstęp:
Jako dodatkową informację chciałem powiedzieć o małym potencjometrze zamontowanym na płytce włączonej do układu.
Mianowicie potencjometr ten steruje dwoma diodami znajdującymi się na płytce, jego zadaniem jest zaświecenie diody w zależności od poziomu zawilgocenia płytki.
Np. można ustawić żeby dioda zaświeciła się w momencie jeśli na płytce znajdzie się choć jedna kropla wody, lub ustawić aby dioda zaświeciła się dopiero w momencie całkowitego zawilgocenia płytki.
Zasada działania:
1. Przez włożenie widełek do wody/gruntu następuje połączenie obu nóżek przez co nasze arduino odbiera na pinie analogowym (A0) wartości pomiędzy ok 300 a 1023 informując nas o tym jak wilgotno jest w miejscu w którym znajdują się widełki.
2. Jeśli widełki są całkowicie zanurzone np. w wodzie otrzymamy wartość 300 natomiast jeśli wyjmiemy widełki z wody wartość rośnie do 1023. Nie testowałem jeszcze widełek w gruncie ale podejrzewam że będą działać równie sprawnie.
Kod programu dla miernika wilgotności podłoża:
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(2000);
}
Jako dodatkową informację chciałem powiedzieć o małym potencjometrze zamontowanym na płytce włączonej do układu.
Mianowicie potencjometr ten steruje dwoma diodami znajdującymi się na płytce, jego zadaniem jest zaświecenie diody w zależności od poziomu zawilgocenia płytki.
Np. można ustawić żeby dioda zaświeciła się w momencie jeśli na płytce znajdzie się choć jedna kropla wody, lub ustawić aby dioda zaświeciła się dopiero w momencie całkowitego zawilgocenia płytki.
Zasada działania:
1. Przez włożenie widełek do wody/gruntu następuje połączenie obu nóżek przez co nasze arduino odbiera na pinie analogowym (A0) wartości pomiędzy ok 300 a 1023 informując nas o tym jak wilgotno jest w miejscu w którym znajdują się widełki.
2. Jeśli widełki są całkowicie zanurzone np. w wodzie otrzymamy wartość 300 natomiast jeśli wyjmiemy widełki z wody wartość rośnie do 1023. Nie testowałem jeszcze widełek w gruncie ale podejrzewam że będą działać równie sprawnie.
Kod programu dla miernika wilgotności podłoża:
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(2000);
}
Arduino czujnik deszczu
Wstęp:
Jako dodatkową informację chciałem powiedzieć o małym potencjometrze zamontowanym na płytce włączonej do układu.
Mianowicie potencjometr ten steruje dwoma diodami znajdującymi się na płytce, jego zadaniem jest zaświecenie diody w zależności od poziomu zawilgocenia płytki.
Np. można ustawić żeby dioda zaświeciła się w momencie jeśli na płytce znajdzie się choć jedna kropla wody, lub ustawić aby dioda zaświeciła się dopiero w momencie całkowitego zawilgocenia płytki.
Zasada działania:
1. Padająca na czujnik wilgotności woda powoduje połączenie na czujniku przez co nasze arduino odbiera na pinie analogowym (A0) wartości pomiędzy ok 300 a 1023 informując nas ile wody znajduje się na płytce.
2. Jeśli płytka jest całkowicie mokra otrzymujemy wartość 300 a jeśli całkowicie sucha to 1023, nie trzeba chyba tłumaczyć że w zależności od ilości wody można uzyskać wartości pośrednie np. częściowo zawilgacając płytkę można otrzymać np. 524 , 663 , 720 dzięki czemu mamy do dyspozycji bardzo profesjonalny czujnik deszczu.
Kod programu dla czujnika wilgoci:
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(2000);
}
Jako dodatkową informację chciałem powiedzieć o małym potencjometrze zamontowanym na płytce włączonej do układu.
Mianowicie potencjometr ten steruje dwoma diodami znajdującymi się na płytce, jego zadaniem jest zaświecenie diody w zależności od poziomu zawilgocenia płytki.
Np. można ustawić żeby dioda zaświeciła się w momencie jeśli na płytce znajdzie się choć jedna kropla wody, lub ustawić aby dioda zaświeciła się dopiero w momencie całkowitego zawilgocenia płytki.
Zasada działania:
1. Padająca na czujnik wilgotności woda powoduje połączenie na czujniku przez co nasze arduino odbiera na pinie analogowym (A0) wartości pomiędzy ok 300 a 1023 informując nas ile wody znajduje się na płytce.
2. Jeśli płytka jest całkowicie mokra otrzymujemy wartość 300 a jeśli całkowicie sucha to 1023, nie trzeba chyba tłumaczyć że w zależności od ilości wody można uzyskać wartości pośrednie np. częściowo zawilgacając płytkę można otrzymać np. 524 , 663 , 720 dzięki czemu mamy do dyspozycji bardzo profesjonalny czujnik deszczu.
Kod programu dla czujnika wilgoci:
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(2000);
}
Subskrybuj:
Posty (Atom)