» elektronikk » Arduino »Hjulavstandsmåler (curvimeter) på Arduino gjør det selv

Gjør-det-selv hjulavstandsmåler (curvimeter) på Arduino

Hei alle sammen! Nå vil jeg prøve å snakke i detalj om hvordan du lager den enkleste og rimeligste curvimeteren.

Men først, la oss finne ut hva det er og hvorfor det trengs. Faktisk forteller navnet sitt om hensikten. Det er dannet av det latinske ordet curvus, som betyr buet eller bølget. Det vil si at en kurvimeter er et hjul eller rulleavstandsmåler. Det skilles mellom to typer krummetre: små (kartografiske), som vanligvis brukes til målinger på kartet, og store (vei), som vanligvis brukes til å måle lengden på buede deler av allerede motorveier. De kan brukes uansett hvor det er upraktisk eller umulig å måle med standard rulett, derfor lover prosjektet å være interessant.

Den første tingen å ta vare på når du bygger curvimeteret er et hjul eller rulle. Det må være lite nok slik at instrumentets nøyaktighet er høy, samtidig må det være stort nok slik at verdien på avlesningene ikke blir sterkt påvirket av ujevnheten i den målte overflaten. I mitt tilfelle har hjulet en diameter på 14 centimeter.

Nå må du bestemme materialets og størrelsen på strukturen. Jeg brukte et tre.

På stengene laget jeg en markering og gjorde nødvendige kutt og hull.

Så monterte jeg de maskinerte delene ved hjelp av små selvskruende skruer.
La oss tappe litt fra selve kurvmåleren og tenke på hvordan denne tingen til og med kan bestemme avstanden? Alt er ganske enkelt. Vi trenger bare å beregne antall omdreininger på hjulet og multiplisere med lengden på ytre omkrets, og det er enda lettere å legge til en lengdeverdi hver gang hjulet gjør en ny revolusjon.

For å telle hver revolusjon i enkleste tilfelle, kan du bruke "glidekontakten". Jeg anbefaler imidlertid ikke å bruke en slik referansemekanisme. Det er mye bedre å bruke en vassbryter eller en Hall-sensor.

Det er på tide å prøve på et hjul. Jeg vil feste den med en lang bolt. Vi finner et sted på rammen der hjulkanten er så nær den som mulig og markerer med slag. Rundt dette området må vi installere vassbryteren.

På rattet må du installere en liten magnet.Forsikre deg om at styrken hans vil være nok til å lukke kontaktene til vassbryteren.
Nå vil vi være engasjert i "hjerner" av systemet. I mitt tilfelle er dette et gebyr Arduino UNO. Den vil lese statusen til vassbryteren og overføre data via Bluetooth-tilkobling, ved hjelp av HC-05-modulen, til telefonen. Forresten, er vassbryteren koblet til brettet som en vanlig knapp. Jeg tror det ikke skal være noen problemer med å koble til Bluetooth-modulen.

Når det gjelder selve koden, er den veldig enkel. Og jeg prøvde å kommentere det slik at alt var så klart som mulig.

int gercon = 12; // koblet reedbryteren til 12 pin
dobbel avstand = 0; // opprettet en dobbel variabel for å lagre avstanden
ugyldig oppsett () {
   Serial.begin (9600); // koblet til en seriell tilkobling
 }
  void loop () {
/ * Neste er if-løkken. Hvis vederbryteren er lukket, skjer neste beregning av avstanden. Verdien 0,46472 er allerede den beregnede lengden på en omdreining av hjulet. For å unngå "ekstra" data, legg til en forsinkelse på 200 millisekunder og vis avlesningene
* /
   if (digitalRead (gercon) == HØY)
   {
 avstand = avstand + 0,46472;
 forsinkelse (200);
 Serial.println (avstand);
}
  } 


Her er curvimeteret vårt og klart!

La oss lage et par testløp. Alt fungerer utmerket!


Du kan se en video om montering av denne enheten, kanskje du vil finne det noe interessant.
[media = https: //youtu.be/kx_7ztPsLws]

Ha en god gjentagelse av prosjektet!
5
5
7

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær
1 kommentar
Gjest Sergey
Hvorfor UNO når attiny13 er nok for øynene ...
Når det gjelder koden, må du i det minste legge til en sjekk om at magneten har forlatt vassbryteren, for i denne implementeringen, med en viss hastighet, og enda mer hvis hjulet stopper, kan det klare å bli behandlet mer enn en gang eller ikke behandlet i det hele tatt. For å gjøre dette, bare legg til en global variabel og sjekk tilstanden før du beregner lengden, noe som:
int gercon = 12; // koblet reedbryteren til 12 pin
int i = sant;
dobbel avstand = 0; // opprettet en dobbel variabel for å lagre avstanden
ugyldig oppsett () {
Serial.begin (9600); // koblet til en seriell tilkobling
}
void loop () {
/ * Neste er if-løkken. Hvis vederbryteren er lukket, skjer neste beregning av avstanden. Verdien 0,46472 er allerede den beregnede lengden på en omdreining av hjulet. For å unngå "ekstra" data, legg til en forsinkelse på 200 millisekunder og vis avlesningene
*/
if (digitalRead (gercon) == HØY)
{
if (i <1)
{
avstand = avstand + 0,46472;
i = 1;
// forsinkelse (200);
Serial.println (avstand);
}
}
hvis (i> 0)
{
i ++;
forsinkelse (1);
}
if (digitalRead (gercon) == LAV)
{
hvis (i> 30) // unngår falske positiver på grunn av kontaktstopp
{
i = 0;
}
}
}

Enda bedre, sett to vassbrytere, dette vil tillate deg å bestemme rotasjonsretningen (jeg gikk ikke dit for å måle - jeg gikk tilbake og ikke for å begynne fra begynnelsen eller ristet den på plass frem og tilbake og snakket med en nabo, etc.) Du kan også legge til magneter for å endre oppløsningen.
ZY Jeg sjekket ikke endringer i koden, det kan være feil.

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...