สารบัญ:

PCBWay Arduino เครื่องวัดระยะทางจักรยาน: 4 ขั้นตอน
PCBWay Arduino เครื่องวัดระยะทางจักรยาน: 4 ขั้นตอน

วีดีโอ: PCBWay Arduino เครื่องวัดระยะทางจักรยาน: 4 ขั้นตอน

วีดีโอ: PCBWay Arduino เครื่องวัดระยะทางจักรยาน: 4 ขั้นตอน
วีดีโอ: How to add more PINs to Arduino with custom PCB from @PCBWay #arduino #hardware #electronics #diy 2024, กรกฎาคม
Anonim
PCBWay Arduino เครื่องวัดระยะทางจักรยาน
PCBWay Arduino เครื่องวัดระยะทางจักรยาน

ในยานพาหนะจำนวนมาก มีอุปกรณ์ที่คำนวณระยะทางที่เดินทางและจำเป็นสำหรับการนำเสนอข้อมูลแก่ผู้ขับขี่

ดังนั้น ด้วยข้อมูลนี้ จึงสามารถตรวจสอบระยะทางที่เดินทางระหว่างจุดสองจุดได้ เช่น ผ่านมาตรวัดระยะทางของรถ

เสบียง

01 x PCBWay PCB แบบกำหนดเอง

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 จอแสดงผล - UTSOURCE

01 x เขียงหั่นขนม - UTSOURCE

01 x สายจัมเปอร์ - UTSOURCE

01 x 10kR โพเทนชิโอมิเตอร์แบบหมุน - UTSOURCE

01 x UTSOURCE สวิตช์กก - UTSOURCE

ดังนั้น ในบทความนี้ เราจะสอนวิธีประกอบอุปกรณ์คำนวณระยะทางโดยใช้เซ็นเซอร์สวิตช์กก

ขั้นตอนที่ 1: โครงการ

โครงการ
โครงการ

โครงการต่อไปนี้ถูกสร้างขึ้นเพื่อคำนวณระยะทางที่เดินทางโดยจักรยานของโรงยิม นอกจากนี้ คุณจะได้เรียนรู้วิธีสร้างการเขียนโปรแกรมสำหรับโครงการ

โครงการนี้มีสามฟังก์ชัน:

  • คำนวณระยะทางที่จักรยานเดินทาง
  • การกำหนดค่ารัศมีการเริ่มต้นอุปกรณ์
  • ปรับให้เข้ากับจักรยานใด ๆ

ในการเข้าถึงฟังก์ชันเหล่านี้ ผู้ใช้จะใช้ปุ่มสามปุ่มของระบบ แต่ละปุ่มมีฟังก์ชันการทำงานของคุณ ในระบบเรามีปุ่มดังต่อไปนี้:

ปุ่มเพิ่มค่า: ปุ่มนี้จะใช้เพื่อป้อนตัวเลือกเพื่อกำหนดค่ารัศมีของล้อและเพิ่มค่ารัศมี

ปุ่มลดระดับ: จะใช้เพื่อลดตัวเลือกในการกำหนดค่ารัศมีของล้อ

ปุ่ม Enter ใช้สำหรับใส่ค่ารัศมีในระบบ

นอกจากนี้เรายังมีเซ็นเซอร์สวิตช์กก มีหน้าที่ตรวจจับเมื่อล้อหมุนจนสุด สำหรับการตรวจจับสิ่งนี้ จำเป็นต้องติดตั้งแม่เหล็กบนล้อ

Reed Switch แสดงไว้ในรูปด้านบน

ขั้นตอนที่ 2:

ดังนั้นทุกครั้งที่แม่เหล็กเข้าใกล้เซ็นเซอร์ แม่เหล็กจะกระตุ้นเซ็นเซอร์ Reed Switch กระบวนการทำงานผ่านสมการต่อไปนี้:

ระยะทางที่เดินทาง = 2 *π * รัศมี * TurnNumber

จากสมการนี้ เราจะรู้ว่าระยะการเดินทางของจักรยานเป็นเท่าใด

ในสมการนี้ ผู้ใช้จะใส่รัศมี และจำนวนการเลี้ยวจะคำนวณจากจำนวนรอบของวงล้อ

และในการตรวจจับการหมุนของล้อจำเป็นต้องติดตั้งแม่เหล็กในล้อจักรยานและติดตั้ง Reed Switch Sensor ใกล้กับล้อ

เพื่อให้กระบวนการง่ายขึ้น เราจึงสร้างแผงวงจรพิมพ์เพื่อเชื่อมต่อ Reed Switch Sensor และปุ่มสามปุ่ม แผงวงจรพิมพ์แสดงไว้ด้านล่างในรูปด้านล่าง

ขั้นตอนที่ 3:

ภาพ
ภาพ

ดังแสดงใน PCB สามารถมองเห็น Arduino Nano ได้ มีหน้าที่ควบคุมระบบทั้งหมด นอกจากนี้ เรามีตัวเชื่อมต่อ JST 5 ตัว

ใช้ขั้วต่อ C1 ถึง C4 เพื่อเชื่อมต่อปุ่มสามปุ่มและเซนเซอร์สวิตช์กก ตอนนี้ C5 Connector ใช้สำหรับเชื่อมต่อ LCD 16x2 I2C

ดังนั้น ด้วยระบบนี้ คุณสามารถติดตั้งโครงการในจักรยานของคุณและรับค่าระยะทางที่เดินทางได้

สำหรับสิ่งนี้ คุณสามารถใช้รหัสที่แสดงด้านล่าง

#รวม #รวม

/*

Pinos de conex?o dos bot?es e sensor reed switch 8 - Sensor Reed Switch 9 - Decremento 12 - เพิ่ม 11 - Enter */

#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);

เซ็นเซอร์บูล = 0, estado_anterior = 0, การเพิ่ม = 0, Decremento = 0;

บูล IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;

ไบต์ต่อ = 0;

int แบบยาวที่ไม่ได้ลงนาม VoltaCompleta = 0;

tempo_atual int ยาวที่ไม่ได้ลงนาม = 0, ultimo_tempo = 0;

ลอย DistKm = 0;

int raio ที่ไม่ได้ลงนาม = 0; ระยะลอยตัว = 0;

การตั้งค่าเป็นโมฆะ ()

{ Serial.begin(9600); โหมดพิน (8, อินพุต); โหมดพิน (9, อินพุต); โหมดพิน (10, อินพุต); โหมดพิน (12, อินพุต);

lcd.begin(16, 2);

//Regiao de codigo para กำหนดค่า o raio da roda do veiculo

ถ้า (EEPROM.read (หน่วยความจำ) != 73) { ConfiguraRaio (); EEPROM.write (หน่วยความจำ 73); }

lcd.setCursor(3, 0);

lcd.print("ดิสแทนเซีย"); lcd.setCursor(6, 1); lcd.print(Distancia);

lcd.setCursor(14, 1);

lcd.print("กม.");

raio = EEPROM.read (PosRaio);

}

วงเป็นโมฆะ ()

{

//Regiao de codigo para realizar a leitura dos botoes e เซ็นเซอร์ทำ dispositivo

เซ็นเซอร์ = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);

//Regiao de codigo para acumular a distancia percorrida

ถ้า (เซ็นเซอร์ == 0 && estado_anterior == 1) { VoltaCompleta ++;

ระยะทาง = (ลอย)(2*3.14*ไร่*VoltaCompleta)/100000.0;

lcd.setCursor(0, 1);

lcd.print(““); lcd.setCursor(6, 1); lcd.print(Distancia);

lcd.setCursor(14, 1);

lcd.print("กม.");

estado_anterior = 0;

}

ถ้า(เซ็นเซอร์ == 1 && estado_anterior == 0)

{ estado_anterior = 1; }

//Regiao de Codigo สำหรับ Configurar o Raio

ถ้า (เพิ่มขึ้น == 1 && EstadoAnteriorIncremento == 0) { EstadoAnteriorIncremento = 1; }

ถ้า (เพิ่มขึ้น == 0 && EstadoAnteriorIncremento == 1)

{ EstadoAnteriorIncremento = 0; lcd.clear(); ConfiguraRaio(); } }

เป็นโมฆะ ConfiguraRaio ()

{

ไบต์ RaioRoda = 0;

//Imprimir mensagem สำหรับ digitar o raio em cm

lcd.setCursor(0, 0); lcd.print("Inserir Raio(ซม.)");

ทำ

{

lcd.setCursor(6, 1);

Incremento = digitalRead (BotaoIncremento);

Decremento = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);

if(Incremento == 1 && IncrementoAnterior == 0)

{ RaioRoda = RaioRoda + 1; เพิ่มขึ้นก่อนหน้า = 1; }

if(Incremento == 0 && IncrementoAnterior == 1)

{ IncrementoAnterior = 0; }

if(Decremento == 1 && DecrementoAnterior == 0)

{ RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }

if(Decremento == 0 && DecrementoAnterior == 1)

{ DecrementoAnterior = 0; }

lcd.setCursor(6, 1);

lcd.print (RaioRoda);

}ในขณะที่(BotaoEnter == 0);

lcd.clear();

EEPROM.write (PosRaio, RaioRoda);

กลับ; }

จากรหัสนี้ มันอาจจะคำนวณระยะทางของคุณกับ Arduino ของคุณ

ขั้นตอนที่ 4: บทสรุป

ดังนั้น กรณีที่คุณต้องการ PCB ของคุณเอง คุณสามารถขอรับผ่านลิงค์นี้บนเว็บไซต์ PCBWay.com สำหรับสิ่งนี้ คุณสามารถเข้าถึงเว็บไซต์ สร้างบัญชีของคุณ และรับ PCB ของคุณเอง

Silícios Lab ขอขอบคุณ UTSOURCE ที่เสนอชิ้นส่วนอิเล็กทรอนิกส์เพื่อสร้างโครงการนี้

แนะนำ: