» elektronik » Arduino »Hjulavståndsmätare (curvimeter) på Arduino gör det själv

Gör-det-själv hjulavståndsmätare (curvimeter) på Arduino

Hej alla! Nu ska jag försöka prata i detalj om hur man gör den enklaste och mest prisvärda kurvimetern.

Men först ska vi ta reda på vad det är och varför det behövs. I själva verket berättar dess namn dess syfte. Det bildas av det latinska ordet curvus, vilket betyder krökt eller vågigt. Det vill säga en kurvmätare är en hjul- eller rullavståndsmätare. Två typer av krökningsmaskiner skiljer sig: små (kartografiska), som vanligtvis används för mätningar på kartan, och stora (väg), som vanligtvis används för att mäta längden på böjda delar av redan motorvägar. De kan användas varhelst det är obekvämt eller omöjligt att mäta med standardroulett, därför lovar projektet att vara intressant.

Det första du ska ta hand om när du bygger curvimetern är ett hjul eller rulle. Det måste vara tillräckligt litet så att noggrannheten hos instrumentet är hög, samtidigt måste den vara tillräckligt stor så att värdet på avläsningarna inte påverkas i hög grad av ojämnheten hos den uppmätta ytan. I mitt fall har hjulet en diameter på 14 centimeter.

Nu måste du bestämma materialets och storleken på strukturen. Jag använde ett träd.

På stängerna gjorde jag en markering och gjorde de nödvändiga skärningarna och hålen.

Sedan monterade jag de bearbetade delarna med små självskruvande skruvar.
Låt oss nu tappa lite från själva curvimetern och tänka på hur det här kan till och med bestämma avståndet? Allt är ganska enkelt. Vi behöver bara beräkna antalet varv på hjulet och multiplicera med längden på dess yttre omkrets, och det är ännu lättare att lägga till ett längdvärde varje gång hjulet gör en ny revolution.

För att räkna varje revolution i enklaste fall kan du använda "skjutkontakten". Jag rekommenderar dock inte att du använder en sådan referensmekanism. Det är mycket bättre att använda en reed switch eller en Hall sensor.

Det är dags att prova på ett hjul. Jag kommer att fästa den med en lång bult. Vi hittar en plats på ramen där hjulkanten är så nära den som möjligt och markerar med slag. Runt detta område måste vi installera vredbrytaren.

På hjulet måste du installera en liten magnet.Se till att hans styrka räcker för att stänga kontakterna på vassbrytaren.
Nu kommer vi att vara engagerade i "hjärnor" av systemet. I mitt fall är detta en avgift Arduino UNO. Den kommer att läsa statusen för vredströmbrytaren och överföra data via Bluetooth-anslutning, med HC-05-modulen, till telefonen. Förresten, reed-omkopplaren är ansluten till kortet som en vanlig knapp. Jag tror att det inte bör finnas några problem med att ansluta Bluetooth-modulen.

När det gäller själva koden är den mycket enkel. Och jag försökte kommentera det så att allt var så tydligt som möjligt.

int gercon = 12; // anslöt vredomkopplaren till 12 stift
dubbelt avstånd = 0; // skapade en dubbelvariabel för att lagra avståndet
ogiltig installation () {
   Serial.begin (9600); // anslutit en seriell anslutning
 }
  void loop () {
/ * Nästa är if-loopen. Om reed-omkopplaren är stängd, sker nästa avståndsberäkning. Värdet 0,46472 är redan den beräknade längden på en varv av hjulet. För att undvika "extra" data lägger du till en fördröjning på 200 millisekunder och visar avläsningarna
* /
   if (digitalRead (gercon) == HÖG)
   {
 avstånd = avstånd + 0,46472;
 fördröjning (200);
 Serial.println (avstånd);
}
  } 


Här är vår curvimeter och redo!

Låt oss göra ett par testlopp. Allt fungerar bra!


Du kan se en video om montering av den här enheten, kanske hittar du det något intressant.
[media = https: //youtu.be/kx_7ztPsLws]

Ha en bra upprepning av projektet!
5
5
7

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga
1 kommentar
Gäst Sergey
Varför UNO när attiny13 räcker för ögonen ...
När det gäller koden måste du åtminstone lägga till en kontroll av att magneten har lämnat vredströmbrytaren, för i denna implementering, med en viss hastighet, och ännu mer om hjulet stannar, kan det hanteras att hanteras mer än en gång eller inte behandlas alls. För att göra detta, lägg bara till en global variabel och kontrollera dess tillstånd innan du beräknar längden, något som:
int gercon = 12; // anslöt vredomkopplaren till 12 stift
int i = sant;
dubbelt avstånd = 0; // skapade en dubbelvariabel för att lagra avståndet
ogiltig installation () {
Serial.begin (9600); // anslutit en seriell anslutning
}
void loop () {
/ * Nästa är if-loopen. Om reed-omkopplaren är stängd, sker nästa avståndsberäkning. Värdet 0,46472 är redan den beräknade längden på en varv av hjulet. För att undvika "extra" data lägger du till en fördröjning på 200 millisekunder och visar avläsningarna
*/
if (digitalRead (gercon) == HÖG)
{
if (i <1)
{
avstånd = avstånd + 0,46472;
i = 1;
// fördröjning (200);
Serial.println (avstånd);
}
}
om (i> 0)
{
i ++;
fördröjning (1);
}
if (digitalRead (gercon) == LÅG)
{
om (i> 30) // undviker falska positiver på grund av kontaktstopp
{
i = 0;
}
}
}

Ännu bättre, placera två vassomkopplare, detta gör att du kan bestämma rotationsriktningen (jag gick inte dit för att mäta - jag gick tillbaka och började inte från början eller skakade den på plats framåt och bakåt och pratade med en granne, etc.). Du kan också lägga till magneter för att ändra upplösningen.
ZY Jag kontrollerade inte ändringar i koden, det kan vara fel.

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...