Turinys:
Video: „PCBWay Arduino“dviračių odometras: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Daugelyje transporto priemonių yra įrenginių, kurie apskaičiuoja nuvažiuotą atstumą ir yra būtini norint vairuotojui pateikti informaciją.
Taigi, naudojant šią informaciją, galima stebėti atstumą, nuvažiuotą tarp dviejų taškų, pavyzdžiui, naudojant transporto priemonės odometrą.
Prekės
01 x PCBWay pasirinktinė PCB
01 x „Arduino UNO - UTSOURCE“
01 x LCD 16x2 ekranas - UTSOURCE
01 x Duonos lenta - UTSOURCE
01 x vielos megztiniai - UTSOURCE
01 x 10 kR sukamasis potenciometras - UTSOURCE
01 x UTSOURCE Reed jungiklis - UTSOURCE
Todėl šiame straipsnyje mes išmokysime jus surinkti atstumo skaičiavimo įrenginį naudojant nendrinio jungiklio jutiklį.
1 žingsnis: projektas
Šis projektas buvo sukurtas norint apskaičiuoti nuvažiuotą atstumą sporto salės dviračiu. Be to, išmoksite kurti projekto programavimą.
Šis projektas turi tris funkcijas:
- Apskaičiuokite dviračiu nuvažiuotą atstumą;
- Įrenginio paleidimo spindulio konfigūracija;
- Tinka bet kokiam dviračiui.
Norėdami naudotis šiomis funkcijomis, vartotojas naudosis trimis sistemos mygtukais. Kiekvienas mygtukas turi savo funkcijas. Sistemoje turime šiuos mygtukus:
Padidinimo mygtukas: jis bus naudojamas norint įvesti ratų spindulio konfigūravimo ir spindulio vertės padidinimo parinktį;
Sumažinimo mygtukas: jis bus naudojamas ratų spindulio konfigūravimo galimybei sumažinti;
Įvesties mygtukas: jis bus naudojamas įterpti spindulio vertę į sistemą.
Be to, mes turime „Reed Switch“jutiklį. Ji yra atsakinga už aptikimą, kada ratai sukasi visiškai. Norėdami tai nustatyti, ant ratų reikia sumontuoti magnetą.
„Reed“jungiklis pateiktas aukščiau esančiame paveikslėlyje.
2 žingsnis:
Taigi kiekvieną kartą, kai magnetas priartėja prie jutiklio, jis suaktyvins „Reed Switch“jutiklį. Procesas veikia pagal šią lygtį:
Nuvažiuotas atstumas = 2 * π * spindulys * posūkio numeris
Pagal šią lygtį mes žinosime, koks dviračio nuvažiuotas atstumas.
Į lygtį spindulį įterpia vartotojas, o posūkio skaičius apskaičiuojamas pagal rato apsisukimų skaičių.
Norint aptikti rato posūkius, reikia į dviračio ratą sumontuoti magnetą ir šalia rato sumontuoti „Reed Switch“jutiklį.
Norėdami palengvinti procesą, sukuriame spausdintinę plokštę, jungiančią „Reed Switch“jutiklį ir tris mygtukus. Spausdintinė plokštė pateikta žemiau esančiame paveikslėlyje.
3 žingsnis:
Kaip parodyta PCB, galima pamatyti „Arduino Nano“. Ji yra atsakinga už visų sistemų valdymą. Be to, turime 5 JST jungtis.
C1 iki C4 jungtys naudojamos trims mygtukams ir „Reed Switch“jutikliui sujungti. Dabar C5 jungtis naudojama LCD 16x2 I2C prijungimui.
Todėl per šią sistemą galite įdiegti projektą savo dviračiu ir gauti nuvažiuoto atstumo vertę.
Tam galite naudoti žemiau pateiktą kodą.
#įtraukti #įtraukti
/*
Pinos de conex? O dos bot? Es e jutiklio perjungimo jungiklis 8 - jutiklio nendrinis jungiklis 9 - sumažėjimas 12 - padidinimas 11 - įvedimas */
#define MEMORIA 120
#define PosRaio 125
#define „ReedSwitch“8
#define BotaoEnterOk 11 #define BotaoIncremento 12 #define BotaoDecremento 9
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
„LiquidCrystal“LCD (rs, en, d4, d5, d6, d7);
bool jutiklis = 0, estado_anterior = 0, padidėjimas = 0, sumažėjimas = 0;
bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;
baitų kont = 0;
unsigned long int VoltaCompleta = 0;
nepasirašytas ilgas int tempo_atual = 0, ultimo_tempo = 0;
plūdė DistKm = 0;
nepasirašytas int raio = 0; plūdė Distancia = 0;
negaliojanti sąranka ()
{Serial.begin (9600); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); pinMode (12, INPUT);
LCD. pradžia (16, 2);
// Regiao de codigo para configurar o raio da roda do veiculo
if (EEPROM.read (MEMORIA)! = 73) {ConfiguraRaio (); EEPROM.write (MEMORIA, 73); }
lcd.setCursor (3, 0);
lcd.print („Distancia“); lcd.setCursor (6, 1); lcd.print („Distancia“);
lcd.setCursor (14, 1);
lcd.print („km“);
raio = EEPROM.read (PosRaio);
}
tuštumos kilpa ()
{
// Regiao de codigo para realizar a leitura dos botoes e sensor do dispositivo
jutiklis = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Prieaugis = digitalRead (BotaoIncremento);
Regioo de codigo para acumular a distancia percorrida
if (jutiklis == 0 && estado_anterior == 1) {VoltaCompleta ++;
Distancia = (plūdė) (2*3.14*raio*VoltaCompleta) /100000.0;
lcd.setCursor (0, 1);
lcd.print („“); lcd.setCursor (6, 1); lcd.print („Distancia“);
lcd.setCursor (14, 1);
lcd.print („km“);
estado_anterior = 0;
}
jei (jutiklis == 1 && estado_anterior == 0)
{estado_anterior = 1; }
// Regiao de Codigo para Configurar o Raio
if (padidėjimas == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }
jei (padidėjimas == 0 && EstadoAnteriorIncremento == 1)
{EstadoAnteriorIncremento = 0; lcd.clear (); „ConfiguraRaio“(); }}
void ConfiguraRaio ()
{
baitas RaioRoda = 0;
// Imprimir mensagem para digitar o raio em cm
lcd.setCursor (0, 0); lcd.print („Inserir Raio (cm)“);
daryti
{
lcd.setCursor (6, 1);
Prieaugis = digitalRead (BotaoIncremento);
Decremento = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);
jei (padidėjimas == 1 && padidinimasAnterior == 0)
{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }
jei (padidėjimas == 0 && padidinimasAnterior == 1)
{IncrementoAnterior = 0; }
jei (Decremento == 1 && DecrementoAnterior == 0)
{RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }
jei (Decremento == 0 && DecrementoAnterior == 1)
{DecrementoAnterior = 0; }
lcd.setCursor (6, 1);
lcd.print („RaioRoda“);
} while (BotaoEnter == 0);
lcd.clear ();
EEPROM.write (PosRaio, RaioRoda);
grįžti; }
Pagal šį kodą jis gali apskaičiuoti jūsų atstumą su „Arduino“.
4 žingsnis: Išvada
Todėl, jei norite savo PCB, galite gauti šią nuorodą PCBWay.com svetainėje. Norėdami tai padaryti, galite pasiekti svetainę, susikurti paskyrą ir įsigyti savo PCB.
„Silícios Lab“dėkoja UTSOURCE, pasiūliusiam elektroninius komponentus šiam projektui sukurti.
Rekomenduojamas:
„Pasidaryk pats“vidaus dviračių išmanusis treneris: 5 žingsniai
„Pasidaryk pats“vidaus dviračių išmanusis treniruoklis: Įvadas Šis projektas prasidėjo kaip paprastas „Schwinn IC Elite“patalpų dviračio pakeitimas, kurio atsparumo nustatymams naudojamas paprastas varžtas ir veltinio pagalvėlės. Problema, kurią norėjau išspręsti, buvo ta, kad varžto žingsnis buvo per didelis, todėl diapazonas
„Neopixel“dviračių žibintai: 8 žingsniai
„Neopixel“dviračių žibintai: Šioje pamokoje mes pagaminsime neopikselinį dviračio žibintą, kad jūsų dviratis naktį atrodytų vėsesnis. Galite prijungti jį prie savo telefono per „WiFi“arba tiesiog naudodami „Arduino nano“ir momentinį mygtuką, kad perjungtumėte režimus Negaliu p
Dviračių žibintai: 5 žingsniai
Dviračių žibintai: Projekto tikslas Dviračio priekinio ir galinio apšvietimo įtaiso projektavimas ir konstrukcija, kurią sudaro: Priekinio apšvietimo lempa. Buvimo lemputė ir posūkio rodiklis (mirksi) gale. Projekto apribojimai Vienas maitinimo šaltinis
„Arduino“dviračių spidometras naudojant GPS: 8 žingsniai
„Arduino“dviračių spidometras naudojant GPS: Šioje pamokoje mes naudosime „Arduino“ir „Visuino“, kad ST7735 ekrane būtų rodomas dabartinis dviračio greitis iš GPS. Žiūrėkite demonstracinį vaizdo įrašą
Elektrinis riedlentės odometras: 5 žingsniai
Elektrinės riedlentės odometras: Įvadas Daugumoje aukščiausios klasės elektrinių riedlenčių, esančių maždaug tūkstančio dolerių diapazone, yra telefono programa, rodanti riedlenčių informaciją realiuoju laiku, ir, deja, ekonomiškesnės riedlentės iš Kinijos nėra tokios. Taigi kodėl gi ne