جدول المحتويات:

PCBWay اردوينو دراجة عداد المسافات: 4 خطوات
PCBWay اردوينو دراجة عداد المسافات: 4 خطوات

فيديو: PCBWay اردوينو دراجة عداد المسافات: 4 خطوات

فيديو: PCBWay اردوينو دراجة عداد المسافات: 4 خطوات
فيديو: دورة الالكترونيات الرقمية:: 27- القلابات JK Flip Flop, T Flip Flop 2024, يوليو
Anonim
PCBWay اردوينو دراجة عداد المسافات
PCBWay اردوينو دراجة عداد المسافات

في العديد من المركبات ، توجد أجهزة تحسب المسافة المقطوعة وهي ضرورية لتقديم المعلومات إلى السائق.

وبالتالي ، من خلال هذه المعلومات ، يمكن مراقبة المسافة المقطوعة بين نقطتين ، على سبيل المثال ، من خلال عداد المسافة بالسيارة.

اللوازم

01 x PCBWay مخصص ثنائي الفينيل متعدد الكلور

01 × Arduino UNO - UTSOURCE

01 × شاشة LCD 16 × 2 - UTSOURCE

01 × اللوح - UTSOURCE

01 × Wire Jumpers - UTSOURCE

01 × 10kR مقياس الجهد الدوراني - UTSOURCE

01 × UTSOURCE Reed Switch - UTSOURCE

لذلك ، من خلال هذه المقالة ، سوف نعلمك كيفية تجميع جهاز حساب المسافة الخاص بك باستخدام مستشعر مفتاح القصب.

الخطوة الأولى: المشروع

المشروع
المشروع

تم إنشاء المشروع التالي لحساب المسافة المقطوعة بواسطة دراجة صالة الألعاب الرياضية. بالإضافة إلى ذلك ، ستتعلم كيفية إنشاء البرمجة للمشروع.

يحتوي هذا المشروع على ثلاث وظائف:

  • احسب المسافة المقطوعة بالدراجة ؛
  • تكوين نصف قطر بدء تشغيل الجهاز ؛
  • قابلة للتكيف مع أي دراجة.

للوصول إلى هذه الوظائف ، سيستخدم المستخدم الأزرار الثلاثة للنظام. كل زر له وظيفته. في النظام لدينا الأزرار التالية:

زر الزيادة: سيتم استخدامه للدخول في خيار تكوين نصف قطر العجلات وزيادة قيمة نصف القطر ؛

زر التناقص: سيُستخدم لتقليل خيار تكوين نصف قطر العجلات ؛

زر الإدخال: سيتم استخدامه لإدراج قيمة نصف القطر في النظام.

بالإضافة إلى ذلك ، لدينا مستشعر تبديل ريد. وهي مسؤولة عن اكتشاف متى تقوم العجلات بدوران كامل. لاكتشاف ذلك ، فإنه يحتاج إلى تثبيت مغناطيس على العجلات.

تم عرض مفتاح Reed في الشكل أعلاه.

الخطوة 2:

وبالتالي ، في كل مرة يقترب المغناطيس من المستشعر ، فإنه يقوم بتشغيل مستشعر Reed Switch. تعمل العملية من خلال المعادلة التالية:

المسافة المقطوعة = 2 * π * نصف القطر * رقم الدوران

من خلال هذه المعادلة ، سنعرف المسافة التي قطعتها الدراجة.

في المعادلة ، يتم إدخال نصف القطر من قبل المستخدم ، ويتم حساب رقم الدوران من خلال عدد لفات العجلة.

وللكشف عن دوران العجلة ، يلزم تثبيت مغناطيس في عجلة الدراجة وتثبيت مستشعر تبديل ريد بالقرب من العجلة.

لتسهيل العملية ، قمنا بإنشاء لوحة دوائر مطبوعة لتوصيل مستشعر Reed Switch والأزرار الثلاثة. يتم عرض لوحة الدوائر المطبوعة أدناه في الشكل أدناه.

الخطوه 3:

صورة
صورة

كما هو مبين في PCB من الممكن رؤية Arduino Nano. إنها مسؤولة عن التحكم في جميع الأنظمة. بالإضافة إلى ذلك ، لدينا 5 موصلات JST.

يتم استخدام موصلات C1 حتى C4 لتوصيل الأزرار الثلاثة ومستشعر تبديل ريد. الآن ، يتم استخدام موصل C5 لتوصيل شاشة LCD 16x2 I2C.

لذلك ، من خلال هذا النظام ، يمكنك تثبيت المشروع على دراجتك والحصول على قيمة المسافة المقطوعة.

لهذا ، يمكنك استخدام الكود المعروض أدناه.

# تضمين # تضمين

/*

Pinos de conex؟ o dos bot؟ es e مستشعر القصب التبديل 8 - مستشعر Reed Switch 9 - Decremento 12 - Incremento 11 - أدخل * /

#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 ، Incremento = 0 ، Decremento = 0 ؛

bool IncrementoAnterior = 0 ، DecrementoAnterior = 0 ، BotaoEnter = 0 ، EstadoAnteriorIncremento = 0 ؛

البايت تابع = 0 ؛

كثافة العمليات الطويلة غير الموقعة VoltaCompleta = 0 ؛

tempo_atual = 0، ultimo_tempo = 0؛

تعويم DistKm = 0 ؛

رايو int raio غير الموقعة = 0 ؛ تعويم Distancia = 0 ؛

الإعداد باطل()

{Serial.begin (9600) ، pinMode (8 ، الإدخال) ؛ pinMode (9 ، الإدخال) ؛ pinMode (10 ، الإدخال) ؛ pinMode (12 ، الإدخال) ؛

lcd.begin (16 ، 2) ؛

// Regiao de codigo para configurar o raio da roda do veiculo

إذا (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 ("كم") ؛

raio = EEPROM.read (PosRaio) ؛

}

حلقة فارغة()

{

// Regiao de codigo para realizar جهاز استشعار leitura dos botoes e يقوم بالتصرف

جهاز استشعار = digitalRead (ReedSwitch) ؛ Decremento = digitalRead (BotaoDecremento) ، Incremento = digitalRead (BotaoIncremento) ،

// Regiao de codigo para acumular a distancia percorrida

إذا (المستشعر == 0 && estado_anterior == 1) {VoltaCompleta ++ ؛

Distancia = (تعويم) (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 ("كم") ؛

estado_anterior = 0 ؛

}

إذا (المستشعر == 1 && استادو_أمامي == 0)

{estado_anterior = 1 ؛ }

// Regiao de Codigo para Configurar o Raio

إذا (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1 ؛ }

إذا (زيادة == 0 && EstadoAnteriorIncremento == 1)

{EstadoAnteriorIncremento = 0 ؛ lcd.clear () ؛ ConfiguraRaio () ، }}

ConfiguraRaio باطل ()

{

بايت RaioRoda = 0 ؛

// Imprimir mensagem para 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) ،

إذا (Incremento == 1 && IncrementoAnterior == 0)

{RaioRoda = RaioRoda + 1 ؛ IncrementoAnterior = 1 ؛ }

إذا (Incremento == 0 && IncrementoAnterior == 1)

{IncrementoAnterior = 0 ؛ }

إذا (Decremento == 1 && DecrementoAnterior == 0)

{RaioRoda = RaioRoda - 1 ؛ DecrementoAnterior = 1 ، }

إذا (Decremento == 0 && DecrementoAnterior == 1)

{DecrementoAnterior = 0 ؛ }

lcd.setCursor (6 ، 1) ؛

lcd.print (RaioRoda) ؛

} while (BotaoEnter == 0) ؛

lcd.clear () ؛

EEPROM.write (PosRaio ، RaioRoda) ؛

إرجاع؛ }

من هذا الرمز ، من المحتمل أن يحسب المسافة مع Arduino الخاص بك.

الخطوة 4: الخاتمة

لذلك ، إذا كنت تريد PCB الخاص بك ، يمكنك الحصول عليه من خلال هذا الرابط على موقع PCBWay.com. لهذا ، يمكنك الوصول إلى موقع الويب ، وإنشاء حسابك ، والحصول على PCB الخاص بك.

يشكر مختبر Silícios Lab UTSOURCE على تقديم المكونات الإلكترونية لإنشاء هذا المشروع.

موصى به: