• 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
On/Off w zależności od częstotliwości
#4
No to zrobiłbym to tak:


Kod:
float liczba_impulsow;
float czestotliwosc;
unsigned long CZAS=1000;
unsigned long CZAS1;
void setup()
{
  pinMode(2, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(2), zbocze, FALLING);
  Serial.begin(250000);
}

void loop()
{
  CZAS1=millis();
  if(CZAS1==CZAS)
  {
    CZAS = CZAS + 1000;
    czestotliwosc = liczba_impulsow;
    liczba_impulsow=0;
  }
  if(czestotliwosc==0)
  {
    //kod dla braku sygnalu
  }
  if(czestotliwosc>0 && czestotliwosc<4)
  {
    //kod dla 2.22Hz
  }
  if(czestotliwosc>=4)
  {
    //kod dla 13 Hz
  }


  
}
void zbocze()
{
  liczba_impulsow++;
}
Kod działa w taki sposób:
Kiedy na pinie 2 wykryte jest zbocze opadające, to wykonuje się funkcja "zbocze", czyli zmienna liczba_impulsow się zwiększa o 1. Częstotliwość to liczba okresów w sekundzie, więc co sekundę liczba_impulsow staje się częstotliwością[Hz], a sama jest zerowana i zaczyna się liczenie od nowa, można by, np ten czas zwiększyć do 2 sekund, a wynik podzielić przez 2 (zwiększyć dokładność) lub zmniejszyć czas, a wynik pomnożyć (zwiększyć częstość odświeżania , ale zmniejszyć dokładność)

Widzę, że tam napięcie nie waha się między 0 a 5V, więc wypadałoby zastosować dzielniki napięcia czy diody, dla pewności, żeby sobie procka nie uszkodzić
 
Odpowiedź
  


Wiadomości w tym wątku
RE: On/Off w zależności od częstotliwości - przez Tomuh - 27-05-2017, 17:07

Skocz do:


Przeglądający: 1 gości