szervo-vezérlés ultrahangos távolságmérő hc-sr04 és Arduino sensorshield

Helló kedves olvasók oldalunkat. Ma fogunk tanulni, hogyan kell irányítani az elfordulási szög a működtető a távolság az ultrahangos távolságmérő az objektumot. mi is fontolóra alternatív összekötő elemek segítségével Arduino SensorShield. Ez Shield használják a kényelmes és gazdaságos munkavégzés mesta.Esli meg kell csatlakoztatni a nagyszámú érzékelők, akkor ez a kártya az Ön számára! Oldalunkon vannak órák, ahol megbeszéltük, hogy csatlakoztassa a hajtómű és a távmérő az Arduino. Ma közelebbről szemügyre Sensorshield és megtanulják az előnyeit használja ezt Schild.
Műszaki adatok Arduino Sensorshield

A legnagyobb előnye az Schild, hogy csatlakozni tud nagyszámú érzékelők a legkényelmesebb és egyúttal elfoglal egy kis helyet, mint lehetséges a Arduino. Schild Csatlakozó Arduino játszani szabványos módon, nevezetesen az összes névjegyet helyezett a mikrokontroller fórumon, így a hibrid, amely fogják hívni - „szendvics”.
Shield lehet használni, hogy csatlakoztassa a következő eszközök
- SD kártya
- 32 szervoszabályozó
- RB URF ultrahangos érzékelők
- 12864 LCD soros és párhuzamos interfész
- APC220 vezeték nélküli RF
- Bluetooth
- I2C
Az alábbiakban vázlatos pinout tábla Sensorshield, ez segít megérteni, hogy mit kell csatlakoztatni a csapok egy adott érzékelőt.

Components csatlakozáshoz szükséges
Hogy teljes legyen a munka a mi mini-projekt, szükségünk van az alábbi eszközöket:
Mindezen elemek megvásárolhatók olcsó és jó minőségű a SmartElements online áruház.
A további kényelem, akkor kattintson az egérrel a nevét a fenti listában, hogy megy a vásárlás az árut.

Miután elkészítettük az összes szükséges komponenst csatlakozni, akkor mehet csatlakozni. Először is, úgy a vezetékeket a mi mini-projekt.
bekötési rajz


Mint látható, a kapcsolat áramkör nagyon egyszerű, és nem igényel további magyarázatot. Mint mindig, a kapcsolatot meg kell nagyon óvatosan és finoman, mert befolyásolja az idejét eszközök.
Remélem, hogy csatlakoztassa az eszközöket már megvan, és most pedig a legfontosabb szakasz - a Arduino programozási.
Vázolja, hogy ellenőrizzék a forgásszög a működtető
#include
#define együttható 5
#define min_zone 6
#define max_zone 44
#define Trig 5
#define Echo 6
#define servoPin 11
Servo myservo;
void setup () <
pinMode (Trig, kimenetet); // kezdeményezi a kimenő
pinMode (Echo, bemenet); // kezdeményezzen, mint egy bemeneti
myservo.attach (servoPin);
myservo.write (0);
>
unsigned int impulseTime = 0;
unsigned int distance_sm = 0;
void loop () <
digitalWrite (Trig, HIGH); / * Impulzusok érkeznek a bemenetre trigonometrikus EDM * /
delayMicroseconds (10); // egyenlő 10 mikroszekundum
digitalWrite (Trig, LOW); // letiltása
impulseTime = pulseIn (Echo, HIGH); // mérjük az impulzus hossza
distance_sm = impulseTime / 58; // újraszámolja centiméter
ha (distance_sm> = min_zone distance_sm <= max_zone)
// ha az intézkedések a hossza több mint 4 cm, és kevesebb, mint 22 cm
<
myservo.write (COEF * (distance_sm - min_zone));
// kapcsolja a szervo az érték: 10 * (intézkedések hossza - 4cm)
>
else if (distance_sm
<
myservo.write (0);
>
mást // különben
<
myservo.write (180); // működtető állásba 180 fok
>
késleltetés (100); / * Várjon 0,1 másodperc * /
>
elemzési vázlat
Nos, itt az ideje, hogy szét a vázlatot. Magyarázza egyszerű pillanatok, nem fogok, de megpróbálja, hogy meséljek a legérdekesebb része a kódot.
-------------- 1 darab kód --------------
ha (distance_sm> = min_zone distance_sm <= max_zone)
// ha az intézkedések a hossza több mint 4 cm, és kevesebb, mint 22 cm
<
myservo.write (COEF * (distance_sm - min_zone));
// kapcsolja a szervo az érték: 10 * (intézkedések hossza - 4cm)
>
-------------- 2 darab kód --------------
else if (distance_sm
<
myservo.write (0);
>
mást // különben
<
myservo.write (180); // működtető állásba 180 fok
>
Nézzük a legérdekesebb része a vázlatot, amely felelős a projekt. Osszuk el ezt a kódrészletet két részre, amely akkor lásd fent. Nézzük az egyes részek külön-külön.
1. a kód, mint látod, hogy ki az első része a kód egy akció, hogy az úgynevezett feltétel. Mi határozza meg a körülmények, amelyek között fut bizonyos parancsokat. Az mit jelent ez a parancs a következő: ha a távolság mérése a távolságmérő, nagyobb vagy egyenlő, mint a minimális értéket (a minimális érték kértük elején a vázlatot), és kisebb vagy egyenlő a maximális értéket (a maximális érték, akkor arra is rámutatott, az elején a vázlat), majd kapcsolja be a szervo a sarkon kiszámítása a képlet (10 * (mért hosszúság szerint - minimális érték)).
Kódex 2. A második rész a kód továbbra is az első rész. Ellenkező esetben (ha az érték nem az adott intervallumban érintkező), ha a mért hossza kisebb, mint a legkisebb érzékelési értéket, a szervo van beállítva, hogy egy elforgatási szöge 0 fok. Ellenkező esetben a szervo van állítva a maximális elfordulási szöge 180 fok.
Vagyis, mi rámutatott, hogy a szervo minden lehetséges esetben a munka: üzemállapot, a szervo pozícióban 0 fokkal és 180 fok a helyzetjelző
