» elektronik » Arduino »Arduino platformunda telemetre!

Arduino platformunda telemetre!


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!
6
5
5

Yorum ekle

    • gülümsegülümsemelerxaxatamamdontknowyahoonea
      patronçizikaptalevetevet-evetagresifgizli
      üzgünümdansdance2dance3pardonyardımiçecekler
      Durarkadaşlariyigoodgooddüdükbaygınlıkdil
      dumanzırıltıcraybeyanalaycıDon-t_mentionindir
      ısıöfkelilaugh1mdatoplantımoskingnegatif
      Not_ipatlamış mısırcezalandırmakokumakkorkutmakkorkutuyorarama
      alaythank_youbuto_clueumnikakutanlaşmak
      kötübeeeblack_eyeblum3kızarmakövünçcan sıkıntısı
      sansürlüşakasecret2tehdit etmekzaferyusun_bespectacled
      shokrespektlolPrevedkarşılamaKrutoyya_za
      ya_dobryiyardımcıne_huliganne_othodiFludyasakyakın
7 açıklama
Yazar
) Merhaba
Belki hala çalışan bir eskiziniz var mı? Burada, "<" işaretinin bile "& lt;" ile değiştirildiği ortaya çıkıyor)
Hoş geldiniz! Çiziminizi yüklediğimde, bir nedenden dolayı bir dizi sözdizimi hatası üretir. Tabii ki, sözdizimiyle çok uğraşmıyorum, ancak bazı yerlerde neyin düzeltilmesi gerektiğini bulamıyorum. Örneğin, bir parça halinde:
(int i = 0; i100) tonu (2,70) için;
digitalWrite (j, masiv [i]);
, birleştirilmiş i100 ne anlama geliyor? neden artmıyor? Sonraki iki işlevin aynı döngüye ait olması için kıvırcık parantezlere ihtiyacınız var mı yoksa yanılıyor muyum? Ve böylece derleyici kod boyunca yemin ediyor. Bir şekilde sizinle iletişim kurabilir miyim, kodu açıklayabilir miyim? Makalenize dayanarak bir ders projesi yapmaya çalışıyorum.

Ayrıca, kitaplıkların bağlandığı yerdeki kodda adları belirtilmez. Tabii ki, tahmin etmek mümkündür, ancak yine de bu çizim, çalışabilirliği anında kontrol etmek için pek uygun değildir;
Yazar
Evet, mümkün)
Yani, sondan bir önceki fotoğraf (hangi 77), dinamik ekranın yanlış çalışması sonucunda üst segmentlerin bazı parazit aydınlatması nedeniyle başarısız olur? Altısı da çok açık olmasa da sahte bir arka ışığa sahip.
Yazar
Ivan, 6cm ve 11cm okumaları sensörden avuç içine olan mesafedir)
Lütfen son iki fotoğrafta neden böyle garip bir tanıklık olduğunu açıklayın.

Okumanızı tavsiye ederiz:

Akıllı telefon için verin ...