» elektronik » Arduino »Arduino'daki tekerlek mesafesi ölçer (curvimeter) kendiniz yapın

Kendin yap tekerlek mesafesi ölçer (curvimeter) Arduino'da

Herkese merhaba! Şimdi en basit ve en uygun fiyatlı eğri ölçerin nasıl yapılacağı hakkında ayrıntılı olarak konuşmaya çalışacağım.

Ama önce, ne olduğunu ve neden gerekli olduğunu anlayalım. Aslında adı bize amacını anlatıyor. Latince eğri veya dalgalı anlamına gelen curvus kelimesinden oluşur. Yani, bir eğri metre bir tekerlek veya silindir mesafe ölçerdir. İki tür eğri ölçücü ayırt edilir: genellikle haritada ölçümler için kullanılan küçük (kartografik) ve genellikle zaten otoyolların kavisli bölümlerinin uzunluğunu ölçmek için kullanılan büyük (yol). Standart ruletle ölçmenin uygun olmadığı veya imkansız olduğu her yerde kullanılabilirler, bu nedenle proje ilginç olmayı vaat eder.

Curvimetre oluştururken dikkat edilmesi gereken ilk şey bir tekerlek veya silindirdir. Aletin doğruluğunun yüksek olması için yeterince küçük olmalı, aynı zamanda okumaların değeri ölçülen yüzeyin pürüzlülüğünden büyük ölçüde etkilenmeyecek kadar büyük olmalıdır. Benim durumumda, çarkın çapı 14 santimetre.

Şimdi yapının malzemesini ve boyutunu belirlemelisiniz. Bir ağaç kullandım.

Çubuklarda bir işaretleme yaptım ve gerekli kesikleri ve delikleri yaptım.

Sonra işlenmiş parçaları kendinden kılavuzlu küçük vidalar kullanarak monte ettim.
Şimdi biraz curvimetrenin kendisini inceleyelim ve bu şeyin mesafeyi nasıl belirleyebileceğini düşünelim? Her şey oldukça basit. Tekerleğin devir sayısını hesaplamamız ve dış çevresinin uzunluğuyla çarpmamız gerekiyor ve tekerleğin her devrimde bir uzunluk değeri eklemek daha da kolay.

En basit durumda her devrimi saymak için "kayan kontak" kullanabilirsiniz. Ancak, böyle bir referans mekanizmasının kullanılmasını önermiyorum. Bir kamış anahtarı veya bir Hall sensörü kullanmak çok daha iyidir.

Bir tekerlek üzerinde deneme zamanı. Uzun bir cıvata ile sabitleyeceğim. Çerçeve üzerinde tekerlek jantının mümkün olduğunca yakın olduğu bir yer buluruz ve konturlarla işaretleriz. Bu alanın etrafında, saz anahtarını takmalıyız.

Tekerleğe küçük bir mıknatıs takmanız gerekir.Manyetik anahtarın manyetik anahtarın kontaklarını kapatmak için yeterli olduğundan emin olun.
Şimdi sistemin "beyinleri" ile ilgileneceğiz. Benim durumumda, bu bir ücrettir Arduino UNO. Reed anahtarının durumunu okuyacak ve HC-05 modülünü kullanarak Bluetooth bağlantısı üzerinden telefona veri aktaracaktır. Bu arada, saz anahtarı panoya normal bir düğme gibi bağlanır. Bluetooth modülünü bağlamakla ilgili herhangi bir sorun olmaması gerektiğini düşünüyorum.

Kodun kendisi için, çok basit. Ve her şey mümkün olduğunca açık olacak şekilde yorum yapmaya çalıştım.

int gercon = 12; // kamış anahtarını 12 pime bağladı
çift ​​mesafe = 0; // mesafeyi saklamak için bir çift değişken yarattı
void setup () {
   Serial.begin (9600); // seri bağlantı bağlandı
 }
  void loop () {
/ * Sonraki, if döngüsüdür. Manyetik anahtar kapalıysa, bir sonraki mesafe hesaplaması gerçekleşir. 0.46472 değeri zaten tekerleğin bir devriminin hesaplanan uzunluğudur. "Ekstra" verilerden kaçınmak için 200 milisaniye gecikme ekleyin ve okumaları görüntüleyin
* /
   if (digitalRead (gercon) == YÜKSEK)
   {
 mesafe = mesafe + 0.46472;
 gecikme (200);
 Seri.println (mesafe);
}
  } 


İşte kıvrım ölçücümüz ve hazır!

Birkaç test yarışı yapalım. Her şey harika çalışıyor!


Bu cihazın montajında ​​bir video izleyebilirsiniz, belki orada ilginç bir şey bulacaksınız.
[media = https: //youtu.be/kx_7ztPsLws]

Projeyi tekrarlayın!
5
5
7

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
1 açıklama
Konuk Sergey
Neredeyse UNO 13 olduğunda gözler için yeterlidir ...
Kod gelince, en azından mıknatısın saz anahtarından ayrıldığını kontrol etmeniz gerekir, çünkü bu uygulamada, belirli bir hızda ve hatta tekerlek durursa, birden fazla işlenebilir veya hiç işlenemez. Bunu yapmak için, global bir değişken ekleyin ve uzunluğu hesaplamadan önce durumunu kontrol edin, örneğin:
int gercon = 12; // kamış anahtarını 12 pime bağladı
int i = doğru;
çift ​​mesafe = 0; // mesafeyi saklamak için bir çift değişken yarattı
void setup () {
Serial.begin (9600); // seri bağlantı bağlandı
}
void loop () {
/ * Sonraki, if döngüsüdür. Manyetik anahtar kapalıysa, bir sonraki mesafe hesaplaması gerçekleşir. 0.46472 değeri zaten tekerleğin bir devriminin hesaplanan uzunluğudur. "Ekstra" verilerden kaçınmak için 200 milisaniye gecikme ekleyin ve okumaları görüntüleyin
*/
if (digitalRead (gercon) == YÜKSEK)
{
eğer (i <1)
{
mesafe = mesafe + 0.46472;
i = 1;
// gecikme (200);
Seri.println (mesafe);
}
}
eğer (i> 0)
{
i ++;
gecikme (1);
}
if (digitalRead (gercon) == DÜŞÜK)
{
if (i> 30) // temas sıçraması nedeniyle yanlış pozitiflerden kaçınırsa
{
i = 0;
}
}
}

Daha da iyisi, iki kamış anahtarı koyun, bu dönme yönünü belirlemenize izin verecektir (ölçmek için oraya gitmedim - geri döndüm ve baştan başlamamış veya bir komşuyla konuşmaya başlamamıştım.) Çözünürlüğü değiştirmek için mıknatıslar da ekleyebilirsiniz.
ZY Koddaki değişiklikleri kontrol etmedim, hatalar olabilir.

Okumanızı tavsiye ederiz:

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