Herkese iyi günler! Bu yazıda nasıl kullanıldığını anlatmak istiyorum Arduino, bir dizi LED ve bir ultrasonik sensör, gözlemciden nesneye olan mesafeyi, diğer bir deyişle, telemetre. Hadi gidelim!
Neye ihtiyacımız var:
olağan kutu. Sadece bir mikrodenetleyici içereceğinden, boyut olarak küçük olması arzu edilir.
ile ultrasonik güç çevirici HC-SR04 mesafeyi belirleyebiliriz.
Dört haneli gösterge elde edilen değerleri çıkarmamız gerekir.
set LED'ler herhangi bir renk (daha parlak oldukları için yeşil kullandım), dirençler 220 ohm'da teller ya da jumper'lar breadboard.
Cihazımızın bileşenlerinin güvenli bir şekilde sabitlenmesi için onları lehimleyeceğim.
Bunun için ihtiyacımız var havya, akı, lehimayrıca lehimleme için breadboard.
Ve tabii ki, olmadan Arduino yapamayız! (Herhangi bir mikrodenetleyici seçebilirsiniz, Arduino Leonardo veya eşdeğeri Iskra Neo'yu tercih ettim)
Aletlerden yukarıda dediğim gibi bir havyaya ihtiyacımız var, bıçak ve pense.
Şimdi cihazı monte etmeye başlayalım.
Adım # 1
Başlamak için, bir breadboard kullanarak, gelecekteki cihazımızın bir prototipini oluşturacağız. Bunun gibi bir şey olacak ..
Endişelenme! Bu karmaşada korkunç bir şey yok!
HC-SR04 sensörünün dört pimi vardır: artı, eksi (kontrolörün 5V ve GND'sine yapışırız), Trig ve Echo (arduino pinlerini sırasıyla 12 ve 11'e yerleştiririz)
Dört haneli göstergede 3 kablo bulunur: güç, toprak ve sinyal. İkincisi 9 pinli Arduino'ya bağlanır.
Denetleyicinin 6, 5 ve 4 kontağına dirençli seri olarak üç LED bağlarız. Kutupları unutma. Akım daha uzun bir bacaktan daha kısa olana doğru akar.
Hepsi bu, cihazımızı bir breadboard'a monte ettiğimizde, taslağı yüklediğimizde (makalenin sonunda olacak) ve her şeyin çalıştığından emin olun, lehimlemeye başlamaktan çekinmeyin.
Adım 2
İlk olarak, ultrasonik sensörü breadboard'a lehimleyin. Eleman sayısı 7'yi geçmediği için küçük bir breadboard kullandım.
Bundan sonra, nipperlerin yardımıyla bacakları ısırın (totoloji için özür dilerim), onları kısaltmamak ve daha güzel görünmemek için onları kısaltın!
Bundan sonra, dört kabloyu sensör kontaklarına lehimleyin.
Ayrıca kerpetenler hakkında unutma!
Adım # 3
Sensör yerinde, üç LED'i dirençlerle birlikte lehimlemek için kalır.
Ters tarafta, şöyle görünür:
Adım # 4
Kutunun yan tarafında yiyecek için yuvarlak bir delik açın.
Kapakta, breadboard'unuzun boyutuna (biraz daha küçük uzunlukta) bir boşluk kesmeniz ve ayrıca vidalar için delikler açmanız gerekir.
Şimdi, boş bir breadboard'u üzerinde elemanlar olmadan vidalarsak (sadece gösteri için yaptım ..), aşağıdaki gibi bir şey elde ederiz:
Adım # 5
Bu nedenle, daha rahat hale getirmek için, önce kabloları arduino'ya bağlamayı ve ancak daha sonra breadboard'u kutu kapağına vidalamayı öneriyorum. Ayrıca, yerleşimin üzerine yerleştirdiğim göstergemizi de unutmayın.
Bu cihaz montajındaki her şey bitti!
Sadece sonrakini indirmek için kalır eskiz ve oyuncağın tadını çıkarın!
#include
#include
NewPing sonar (12.11, 400);
int a, j, b;
imzasız uzun t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
geçersiz kurulum ()
{
için (int i = 4; i <7; i ++)
{
pinMode (i, ÇIKIŞ);
}
displayClear (9);
için (int i = 4; i <7; i ++)
{
digitalWrite (i, 0);
}
}
void loop ()
{
j = 7;
(int i = 0; i100) tonu (2,70) için;
digitalWrite (j, masiv [i]);
(milis () = t + b)
{
gecikme (50);
a = sonar.ping_cm ();
displayInt (9, a);
b = a;
}
t = milis ();
eğer (j == 4) j = 7;
eğer (i == 8)
{
digitalWrite (4.1);
(milis () = (t + b) + (b * 2))
{
gecikme (50);
a = sonar.ping_cm ();
displayInt (9, a);
b = a;
}
digitalWrite (4.0);
t = milis ();
}
}
Birkaç kelime program kodu. Onun sayesinde, üç LED'imiz birbiri ardına yanıp sönecek ve yanıp sönme hızları, ultrasonik sensör tarafından hesaplanan nesneye olan mesafeye bağlı olacaktır. Ancak LED'lerin yanıp sönmesini sağlamak için delay () işlevini kullanmak tamamen mantıklı değildir, çünkü kullanıldığında denetleyici donar ve hesaplama yapılmaz. Bu sorunu çözmenin birkaç yolu vardır. Özellikle bunlardan biri, kontrolörün çalıştığı andan itibaren milisaniye cinsinden bir sayı döndüren millis () fonksiyonunun kullanılmasıdır. Ve şartlı 100 milisaniyeyi nasıl geciktiririz? Bunu yapmak için, çıkış sadece 100 milisaniyeden sonra olacak olan boş bir döngü oluşturdum ve program LED'leri açıp kapatmaya devam ediyor.
Hepsi bu kadar! Bu makaleyi sonuna kadar okuduğunuz için teşekkür ederiz. Umarım sadece onu sevmezsin, aynı zamanda yeni bir denize ilham verirsin el sanatları ve icatlar!