תוכן עניינים:

מד מרחק אופניים PCBWay Arduino: 4 שלבים
מד מרחק אופניים PCBWay Arduino: 4 שלבים

וִידֵאוֹ: מד מרחק אופניים PCBWay Arduino: 4 שלבים

וִידֵאוֹ: מד מרחק אופניים PCBWay Arduino: 4 שלבים
וִידֵאוֹ: DIY PCB Distance Measuring Project @PCBWay Hardware Check out their custom PCBs at www.pcbway.com 2024, נוֹבֶמבֶּר
Anonim
מד מרחק לאופניים PCBWay Arduino
מד מרחק לאופניים PCBWay Arduino

ברכבים רבים, ישנם מכשירים המחשבים את המרחק שעשו והם חיוניים להצגת מידע לנהג.

כך, באמצעות מידע זה, ניתן לעקוב אחר המרחק שעבר בין שתי נקודות, למשל, דרך מד המרחק של הרכב.

אספקה

01 x PCB דרך 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: הוא ישמש להכנסת ערך הרדיוס למערכת.

בנוסף, יש לנו את חיישן מתג הקנים. הוא אחראי לזהות מתי הגלגלים עושים סיבוב שלם. כדי לזהות זאת, יש להתקין מגנט על הגלגלים.

מתג הקנים מוצג באיור לעיל.

שלב 2:

לכן, בכל פעם שהמגנט מתקרב לחיישן, הוא יפעיל את חיישן מתג הקנים. התהליך פועל באמצעות המשוואה הבאה:

מרחק נסע = 2 * π * רדיוס * TurnNumber

באמצעות משוואה זו נדע מהו המרחק הנסיעה של האופניים.

במשוואה, הרדיוס מוכנס על ידי המשתמש ומספר התור מחושב באמצעות מספר סיבובי הגלגל.

וכדי לזהות את סיבובי הגלגל יש צורך להתקין מגנט בגלגל האופניים ולהתקין את חיישן מתג הקנים ליד הגלגל.

כדי להקל על התהליך, אנו יוצרים לוח מודפס לחיבור חיישן מתג הקנים ושלושת הכפתורים. לוח המעגלים המודפסים מוצג להלן באיור שלהלן.

שלב 3:

תמונה
תמונה

כפי שמוצג ב- PCB ניתן לראות את ה- Arduino Nano. היא אחראית לשלוט בכל המערכות. בנוסף, יש לנו 5 מחברי JST.

מחברי C1 עד C4 משמשים לחיבור שלושת הכפתורים וחיישן מתג הקנים. כעת, מחבר C5 משמש לחיבור LCD 16x2 I2C.

לכן, באמצעות מערכת זו, תוכל להתקין את הפרויקט באופניים שלך ולקבל את ערך המרחק הנסיעה.

לשם כך, תוכל להשתמש בקוד המוצג להלן.

#כלול #כלול

/*

מתג ריד חיישן 8 - מתג קנה חיישן 9 - דקמנטו 12 - תוספת 11 - הזן */

#define MEMORIA 120

#הגדר PosRaio 125

#define ReedSwitch 8

#הגדר BotaoEnterOk 11 #הגדר BotaoIncremento 12 #הגדר 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;

בת cont = 0;

voltaCompleta long int ללא סימן = 0;

int sign long long tempo_atual = 0, ultimo_tempo = 0;

לצוף DistKm = 0;

int raio ללא חתימה = 0; float Distancia = 0;

הגדרת חלל ()

{Serial.begin (9600); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); pinMode (12, INPUT);

lcd.begin (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 ("ק"מ");

raio = EEPROM.read (PosRaio);

}

לולאת חלל ()

{

// Regiao de codigo para realizar a leitura dos botoes e sensor do dispositivo

חיישן = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

if (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 ("ק"מ");

estado_anterior = 0;

}

אם (חיישן == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

אם (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

אם (Incremento == 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 (cm)");

לַעֲשׂוֹת

{

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

לַחֲזוֹר; }

מהקוד הזה הוא עשוי לחשב את המרחק שלך עם הארדואינו שלך.

שלב 4: מסקנה

לכן, במקרה שאתה רוצה PCB משלך, תוכל להשיג באמצעות הקישור הזה באתר PCBWay.com. לשם כך תוכל לגשת לאתר, ליצור את חשבונך ולקבל מחשבים אישיים משלך.

מעבדת Silícios מודה ל- UTSOURCE שהציעה את הרכיבים האלקטרוניים ליצירת פרויקט זה.

מוּמלָץ: