Mundarija:
Video: PCBWay Arduino velosiped odometri: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Ko'pgina transport vositalarida haydovchiga ma'lumot taqdim etish uchun zarur bo'lgan masofani hisoblaydigan qurilmalar mavjud.
Shunday qilib, bu ma'lumot orqali ikki nuqta orasidagi masofani, masalan, avtomobil odometri orqali kuzatish mumkin.
Ta'minotlar
01 x PCBWay maxsus PCB
01 x Arduino UNO - UTSOURCE
01 x LCD 16x2 displey - UTSOURCE
01 x Non paneli - UTSOURCE
01 x simli o'tish moslamalari - UTSOURCE
01 x 10kR aylanadigan potentsiometr - UTSOURCE
01 x UTSOURCE Reed Switch - UTSOURCE
Shuning uchun, ushbu maqola orqali biz sizga qamish kaliti sensori yordamida masofani hisoblash moslamasini yig'ishni o'rgatamiz.
1 -qadam: Loyiha
Quyidagi loyiha sport zali velosipedining bosib o'tgan masofasini hisoblash uchun yaratilgan. Bundan tashqari, siz loyiha uchun qanday dastur tuzishni o'rganasiz.
Ushbu loyiha uchta funktsiyaga ega:
- Velosipedda o'tgan masofani hisoblang;
- Qurilmani ishga tushirish radiusi konfiguratsiyasi;
- Har qanday velosipedga moslashadi.
Ushbu funktsiyalarga kirish uchun foydalanuvchi tizimning uchta tugmachasidan foydalanadi. Har bir tugma sizning funksiyangizga ega. Tizimda bizda quyidagi tugmalar mavjud:
Kattalashtirish tugmasi: g'ildiraklar radiusini sozlash va radius qiymatini oshirish variantini kiritish uchun ishlatiladi;
Kamaytirish tugmasi: g'ildiraklar radiusini sozlash variantini kamaytirish uchun ishlatiladi;
Kirish tugmasi: Bu tizimga radius qiymatini kiritish uchun ishlatiladi.
Bundan tashqari, bizda qamish almashtirish sensori mavjud. G'ildiraklar to'liq burilishni aniqlaydi. Buni aniqlash uchun g'ildiraklarga magnit o'rnatish kerak.
Reed Switch yuqoridagi rasmda keltirilgan.
2 -qadam:
Shunday qilib, magnit har safar sensorga yaqinlashganda, Reed Switch sensorini ishga tushiradi. Jarayon quyidagi tenglama orqali ishlaydi:
Sayohat qilingan masofa = 2 * π * radiusi * TurnNumber
Bu tenglama orqali biz velosipedda qancha masofani bosib o'tganini bilib olamiz.
Tenglamada radius foydalanuvchi tomonidan kiritiladi va burilish raqami g'ildirakning burilishlari soni bo'yicha hisoblanadi.
G'ildirakning burilishini aniqlash uchun velosiped g'ildiragiga magnit o'rnatish va g'ildirak yonidagi qamish sensori o'rnatilishi kerak.
Jarayonni osonlashtirish uchun biz Reed Switch Sensor va uchta tugmani ulash uchun bosilgan elektron platani yaratamiz. Chop etilgan elektron karta quyidagi rasmda keltirilgan.
3 -qadam:
PCBda ko'rsatilgandek, Arduino Nano -ni ko'rish mumkin. U barcha tizimlarni boshqarish uchun javobgardir. Bundan tashqari, bizda 5 ta JST ulagichi bor.
C1 to C4 konnektorlari uchta tugmachani va qamish tugmachasini ulash uchun ishlatiladi. Endi C5 ulagichi 16x2 I2C LCD -ni ulash uchun ishlatiladi.
Shunday qilib, ushbu tizim orqali siz loyihani velosipedingizga o'rnatib, bosib o'tgan masofa qiymatini olishingiz mumkin.
Buning uchun siz quyida keltirilgan koddan foydalanishingiz mumkin.
#qo'shing #qo'shing
/*
Sensorli qamish tugmasi 8 - Sensorli qamish tugmasi 9 - Dekremento 12 - Incremento 11 - Kirish */
#MEMORIA 120 ni aniqlang
#PosRaio 125 ni aniqlang
#ReedSwitch 8 ni aniqlang
#BotaoEnterOk 11ni belgilang #BotaoIncremento 12 ni belgilang #BotaoDecremento 9ni aniqlang.
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
bool sensori = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;
bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;
bayt davomi = 0;
imzosiz uzoq int VoltaCompleta = 0;
imzosiz uzoq int tempo_atual = 0, ultimo_tempo = 0;
float DistKm = 0;
imzosiz int raio = 0; suzuvchi masofa = 0;
bo'sh o'rnatish ()
{Serial.begin (9600); pinMode (8, INPUT); pinMod (9, Kirish); pinMod (10, Kirish); pinMode (12, INPUT);
lcd.begin (16, 2);
// Konfiguratsiyani sozlash yoki sozlash
agar (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);
}
bo'sh halqa ()
{
// Datchiklar va sensorli displeylar bilan ishlash
sensor = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);
// Regiao de codigo para acumular a distancia percorrida
agar (sensor == 0 && estado_anterior == 1) {VoltaCompleta ++;
Distancia = (float) (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;
}
agar (sensor == 1 && estado_anterior == 0)
{estado_anterior = 1; }
// Regioo Codigo uchun konfiguratsiya yoki Raio
if (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }
agar (Incremento == 0 && EstadoAnteriorIncremento == 1)
{EstadoAnteriorIncremento = 0; lcd.clear (); ConfiguraRaio (); }}
bo'sh ConfiguraRaio ()
{
bayt RaioRoda = 0;
// Raqamli raqamlar sonini o'lchash
lcd.setCursor (0, 0); lcd.print ("Inserir Raio (sm)");
qilmoq
{
lcd.setCursor (6, 1);
Incremento = digitalRead (BotaoIncremento);
Decremento = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);
agar (Incremento == 1 && IncrementoAnterior == 0)
{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }
agar (Incremento == 0 && IncrementoAnterior == 1)
{IncrementoAnterior = 0; }
agar (Decremento == 1 && DecrementoAnterior == 0)
{RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }
agar (Decremento == 0 && DecrementoAnterior == 1)
{DecrementoAnterior = 0; }
lcd.setCursor (6, 1);
lcd.print (RaioRoda);
} while (BotaoEnter == 0);
lcd.clear ();
EEPROM.write (PosRaio, RaioRoda);
qaytish; }
Bu koddan kelib chiqib, u sizning Arduino bilan masofangizni hisoblab chiqadi.
4 -qadam: Xulosa
Shuning uchun, agar siz o'zingizning shaxsiy PCB -ni xohlasangiz, PCBWay.com veb -saytidagi ushbu havola orqali olishingiz mumkin. Buning uchun siz veb -saytga kirishingiz, hisob qaydnomangizni yaratishingiz va o'zingizning shaxsiy kartangizni olishingiz mumkin.
Silícios laboratoriyasi UTSOURCEga ushbu loyihani yaratish uchun elektron komponentlarni taklif qilgani uchun minnatdorchilik bildiradi.
Tavsiya:
Velosiped nuri: 7 qadam
Velosiped nuri: Men bu loyihada sizga o'z velosiped lampangizni qanday yaratishni ko'rsataman, u sizning yo'lingizni tunda yoritib turadi, qaysi yo'l bilan borishingizni ko'rsatadi, shu jumladan svetofor
Velosiped tepish joyi sensori Magicbit [Magicblocks]: 8 qadam
Magicbit [Magicblocks] dan velosiped tepish joyi sensori: Magicblocks yordamida Magicbit yordamida Kickstand Position Sensor qilish uchun oddiy DIY loyihasi. Biz ESP32 -ga asoslangan ushbu loyihani ishlab chiqish paneli sifatida magicbit -dan foydalanmoqdamiz. Shuning uchun, ushbu loyihada har qanday ESP32 ishlab chiqish kartasidan foydalanish mumkin
PCBWAY bilan DIY politsiya LED: 6 qadam (rasmlar bilan)
PCBWAY bilan DIY militsioner LED: HiDelta hack bugungi kunda bosilgan elektron kartochkaga asoslangan oddiy elektron komponentlar yordamida politsiya chaqirgichini qanday yig'ish kerakligini ko'rsatib beradi.Birinchidan, siz videotasvir sxemasi va taxta shablonini ko'rishingiz mumkin. Qani ketdik
GPS yordamida Arduino velosiped tezligi o'lchagichi: 8 qadam
GPS yordamida Arduino velosiped tezligi o'lchagichi: Ushbu qo'llanmada biz ST7735 displeyida GPS -dan velosiped tezligini ko'rsatish uchun Arduino va Visuino -dan foydalanamiz
Infinity velosiped - yopiq velosiped o'rgatish video o'yini: 5 qadam
Infinity velosiped - yopiq velosiped o'rgatish video o'yini: Qish mavsumida, sovuq kunlarda va yomon ob -havo sharoitida velosiped ixlosmandlari o'zlarining sevimli sportlari bilan shug'ullanish uchun faqat bir nechta variantga ega. Biz yopiq mashg'ulotlarni velosiped/trenajyor yordamida biroz qiziqarli qilish usulini qidirayotgan edik, lekin ko'pchilik