• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zmiana liczby impulsow
#1
Big Grin 
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
 
Odpowiedź
#2
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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
(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.
 
Odpowiedź
#4
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ą. 
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości