Spisu treści:

Licznik rowerowy PCBWay Arduino: 4 kroki
Licznik rowerowy PCBWay Arduino: 4 kroki

Wideo: Licznik rowerowy PCBWay Arduino: 4 kroki

Wideo: Licznik rowerowy PCBWay Arduino: 4 kroki
Wideo: Projektowanie PCB i zamówienie wraz z montażem w Chinach #2 2024, Listopad
Anonim
Przebieg rowerowy PCBWay Arduino
Przebieg rowerowy PCBWay Arduino

W wielu pojazdach znajdują się urządzenia, które obliczają przebytą odległość i są niezbędne do prezentowania informacji kierowcy.

Dzięki tym informacjom możliwe jest monitorowanie odległości przebytej między dwoma punktami, na przykład za pomocą licznika kilometrów pojazdu.

Kieszonkowe dzieci

01 x PCBWay Niestandardowa płytka drukowana

01 x Arduino UNO - UTSOURCE

01 x wyświetlacz LCD 16x2 - UTSOURCE

01 x deska do krojenia chleba - UTSOURCE

01 x zworki drutowe - UTSOURCE

01 x 10kR Potencjometr obrotowy - UTSOURCE

01 x UTSOURCE Kontaktron - UTSOURCE

Dlatego w tym artykule nauczymy Cię, jak złożyć urządzenie do obliczania odległości za pomocą czujnika kontaktronowego.

Krok 1: Projekt

Projekt
Projekt

Poniższy projekt został stworzony w celu obliczenia dystansu przebytego przez rower z siłowni. Dodatkowo dowiesz się, jak tworzyć programowanie dla projektu.

Ten projekt ma trzy funkcjonalności:

  • Oblicz odległość przebytą rowerem;
  • Konfiguracja promienia uruchamiania urządzenia;
  • Możliwość dostosowania do każdego roweru.

Aby uzyskać dostęp do tych funkcji, użytkownik użyje trzech przycisków systemu. Każdy przycisk ma swoją funkcjonalność. W systemie mamy następujące przyciski:

Przycisk Przyrostu: Służy do wprowadzania opcji konfiguracji promienia kół i zwiększania wartości promienia;

Przycisk dekrementacji: Służy do zmniejszania opcji konfiguracji promienia kół;

Przycisk Enter: Będzie używany do wstawiania wartości promienia do systemu.

Dodatkowo mamy czujnik kontaktronowy. Jest odpowiedzialny za wykrycie, kiedy koła wykonują pełny obrót. Aby to wykryć, należy zainstalować magnes na kołach.

Kontaktron został przedstawiony na powyższym rysunku.

Krok 2:

Tak więc za każdym razem, gdy magnes zbliży się do czujnika, uruchomi czujnik kontaktronowy. Proces przebiega według następującego równania:

Przebyta odległość = 2 *π * promień * TurnNumber

Dzięki temu równaniu dowiemy się, jaką odległość przebył rower.

W równaniu promień jest wstawiany przez użytkownika, a numer skrętu jest obliczany na podstawie liczby obrotów koła.

Aby wykryć obroty koła, należy zainstalować magnes w kole rowerowym i zainstalować czujnik kontaktronowy w pobliżu koła.

Aby ułatwić ten proces, tworzymy płytkę drukowaną do podłączenia czujnika kontaktronowego i trzech przycisków. Płytka drukowana jest przedstawiona poniżej na poniższym rysunku.

Krok 3:

Obraz
Obraz

Jak widać na płytce drukowanej można zobaczyć Arduino Nano. Jest odpowiedzialny za kontrolę wszystkich systemów. Dodatkowo posiadamy 5 złącz JST.

Złącza C1 do C4 służą do podłączenia trzech przycisków i czujnika kontaktronowego. Teraz złącze C5 służy do podłączenia LCD 16x2 I2C.

Dlatego dzięki temu systemowi możesz zainstalować projekt w swoim rowerze i uzyskać wartość przebytej odległości.

W tym celu możesz skorzystać z kodu przedstawionego poniżej.

#włącz #włącz

/*

Pinos de conex?o dos bot?es e sensor kontaktron 8 - Sensor kontaktron 9 - Decremento 12 - Incremento 11 - Enter */

#define PAMIĘĆ 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);

czujnik bool = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;

bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;

liczba bajtów = 0;

unsigned long int VoltaCompleta = 0;

unsigned long int tempo_atual = 0, ultimo_tempo = 0;

zmiennoprzecinkowa Dystans = 0;

unsigned int raio = 0; pływak Odległość = 0;

pusta konfiguracja()

{ Szeregowy.początek(9600); pinMode(8, WEJŚCIE); pinMode(9, WEJŚCIE); pinMode(10, WEJŚCIE); pinMode(12, WEJŚCIE);

lcd.początek(16, 2);

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

if(EEPROM.odczyt(PAMIĘĆ) != 73) { ConfiguraRaio(); EEPROM.zapis(PAMIĘĆ, 73); }

lcd.setCursor(3, 0);

lcd.print("Odległość"); lcd.setCursor(6, 1); lcd.print(Distance);

lcd.setCursor(14, 1);

lcd.print("km");

raio = EEPROM.read(PosRaio);

}

pusta pętla()

{

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

czujnik = digitalRead (ReedSwitch); Dekrementacja = digitalRead (BotaoDekremento); Przyrost = digitalRead (BotaoIncremento);

//Regiao de codigo para acumular a distancia percorrida

if(czujnik == 0 && estado_anterior == 1) { VoltaCompleta++;

Odległość = (liczba zmiennoprzecinkowa)(2*3,14*stosunek*VoltaCompleta)/100000,0;

lcd.setCursor(0, 1);

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

lcd.setCursor(14, 1);

lcd.print(„km”);

stan_przedni = 0;

}

if(czujnik == 1 && estado_anterior == 0)

{ stan_przedni = 1; }

//Regiao de Codigo para Configurar o Raio

if(Przyrost == 1 && EstadoAnteriorIncremento == 0) { EstadoAnteriorIncremento = 1; }

if(Przyrost == 0 && StanPoprzedniPrzyrosto == 1)

{ StanPoprzedniPrzyrost = 0; lcd.clear(); KonfigurujRaio(); } }

void KonfigurujRaio()

{

bajt RaioRoda = 0;

//Imprimir mensagem para digitar lub raio em cm

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

robić

{

lcd.setCursor(6, 1);

Przyrost = digitalRead (BotaoIncremento);

Dekrementacja = digitalRead (BotaoDekremento); BotaoEnter = digitalRead (BotaoEnterOk);

if(Przyrost == 1 && PrzyrostoPoprzedni == 0)

{ RaioRoda = RaioRoda + 1; Przyrost przedprzedni = 1; }

if(Przyrost == 0 && PrzyrostoPoprzedni == 1)

{ PrzyrostPoprzedni = 0; }

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

{ RaioRoda = RaioRoda - 1; Dekrementacja przednia = 1; }

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

{ DekrementacjaPoprzednia = 0; }

lcd.setCursor(6, 1);

lcd.print(RaioRoda);

} while(BotaoEnter == 0);

lcd.clear();

EEPROM.write(PosRaio, RaioRoda);

powrót; }

Z tego kodu prawdopodobnie obliczy odległość za pomocą Arduino.

Krok 4: Wniosek

Dlatego jeśli chcesz mieć własną płytkę drukowaną, możesz ją uzyskać za pośrednictwem tego linku na stronie PCBWay.com. W tym celu możesz wejść na stronę internetową, założyć konto i uzyskać własne PCB.

Laboratorium Silícios dziękuje firmie UTSOURCE za zaoferowanie komponentów elektronicznych do stworzenia tego projektu.

Zalecana: