Witam. Panowie główny problem polega na tym że kompletnie się znam na pisaniu programów. Niestety na internecie nie mogłem kupić gotowego prędkościomierza do traktora wiec kupiłem obrotomierz, czujnik halla zamontuje na wał napędowy ale tu pojawia się problem z ilością impulsów. Chciałbym podłączyć czujnik halla do wyświetlacza ale po drodze zamontować arduino które zamieni mi ok8 impulsów na 1. Proszę o pomoc jest to dla was zapewne bardzo proste a dla mnie wręcz nie wykonalne. Posiadam arduinoUNO oraz NANO3
|
Ocena wątku:
Zmiana liczby impulsow
|
29-10-2023, 22:29
Jest niewykonalne, bo nie umiesz programować, a tu się właśnie uczymy, kurs programowania znajdziesz np. tu:
https://forbot.pl/blog//kurs-arduino-pod...rsu-id5290
Jest na forum też dział zlecenia, czasem ktoś tam odpowiada.
https://forbot.pl/blog//kurs-arduino-pod...rsu-id5290
Jest na forum też dział zlecenia, czasem ktoś tam odpowiada.
Miło być decenianym https://buycoffee.to/kaczakat
(29-10-2023, 16:30)Sobczi95 napisał(a): Witam. Panowie główny problem polega na tym że kompletnie się znam na pisaniu programów. Niestety na internecie nie mogłem kupić gotowego prędkościomierza do traktora wiec kupiłem obrotomierz, czujnik halla zamontuje na wał napędowy ale tu pojawia się problem z ilością impulsów. Chciałbym podłączyć czujnik halla do wyświetlacza ale po drodze zamontować arduino które zamieni mi ok8 impulsów na 1. Proszę o pomoc jest to dla was zapewne bardzo proste a dla mnie wręcz nie wykonalne. Posiadam arduinoUNO oraz NANO3
Do tego wystarczy 3-bitowy licznik, nie potrzeba procka. Np. taki z 7493 - trzeba dopasować poziomy, ale
to też będzie z Arduino. Atmega też ma liczniki, nie potrzebujesz programu, który pracuje, jedynie zaprogramowanie licznika.
A może po prostu dodać jakieś przełożenie - np 8 razy większe kółko, z którego będziesz brał impulsy.
30-10-2023, 00:35
Kod:
#define Pin_INT 3 // wejście sygnału
#define Pin_OUT 5 // wyjście sygnału
volatile uint8_t TIK =0;
volatile bool Flag;
void IC(){ // przerwanie
TIK++;
if(TIK >= 4){
Flag =! Flag;
digitalWrite(Pin_OUT, Flag);
TIK =0;
}
}
void setup(){
pinMode(Pin_INT, INPUT);
pinMode(Pin_OUT, OUTPUT);
attachInterrupt(digitalPinToInterrupt(Pin_INT), IC, RISING);
}
void loop(){
}Ustawione na 50% wypełnienia.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą.
Przeglądający: 1 gości

