Biblioteka freqMeasure + Arduino Uno

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
mocnyMietek
Młodszy majsterkowicz
Posty: 4
Rejestracja: 15 paź 2015, 11:14
Lokalizacja: Lublin

Biblioteka freqMeasure + Arduino Uno

Post autor: mocnyMietek » 15 paź 2015, 11:29

Na wstępie witam wszystkich serdecznie! Jestem zdecydowanie nowicjuszem w dziedzinie elektroniki ale z programowaniem idzie mi ciut lepiej ;) jakieś książki przeczytałem, tutoriale na necie też ale nie mogę sobie poradzić w jednym temacie otóż:

Chcę za pomocą Arduino Uno na porcie cyfrowym nr 8 mierzyć częstotliwość z generatora (powiedzmy 200Hz) za pomocą znalezionej biblioteki freqMeasure 1.1 (pjrc(dot)com), którą wrzuciłem do kodu. Na pierwszy rzut wydaje się, że coś działa i wskazuje na wyświetlaczu ale odczyt jest niestabilny (przy 200Hz +-5%) i pływa. Czy jest kwestią kodu lub jakiegoś układu elektronicznego (kondensator, rezystor itp) żeby ustabilizować ten odczyt?

Przyznam się, że nie wiem w którą stronę iść czy grzebać i uśredniać w kodzie czy coś po stronie elektroniki zmajstrować (a wydaje mi się, że tutaj...), chodź w kodzie do testów używam wyłącznie wywołania FreqMeasure.read(); i go wyświetlam.

Czy ktoś mógłby mi wskazać, podpowiedzieć co zrobić żeby odczyt był stabilny? Z góry dziękuję i przepraszam za nieprofesjonalność. Mieczysław

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


rumunn95
Majsterkowicz
Posty: 174
Rejestracja: 12 mar 2015, 18:32

Re: Biblioteka freqMeasure + Arduino Uno

Post autor: rumunn95 » 15 paź 2015, 13:42

Nieprofesionalnie jest zadc pytanie nie ppkazujac kodu ;)

Tapniete z LG G2
mocnyMietek
Młodszy majsterkowicz
Posty: 4
Rejestracja: 15 paź 2015, 11:14
Lokalizacja: Lublin

Re: Biblioteka freqMeasure + Arduino Uno

Post autor: mocnyMietek » 15 paź 2015, 14:16

Kod: Zaznacz cały

#include <LiquidCrystal.h>
#include <FreqMeasure.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

#define LEDSTATUS 13

void setup() {

  pinMode(LEDSTATUS, OUTPUT);
  digitalWrite(LEDSTATUS, HIGH);
  lcd.begin(16, 2);

  FreqMeasure.begin();

}

void loop() {
  
  digitalWrite(LEDSTATUS, HIGH);
 
  unsigned int sensorFreqValue = FreqMeasure.read();

    
    lcd.setCursor(0, 0);
    lcd.print(sensorFreqValue);
    lcd.print("Hz");  

    delay(100);
    digitalWrite(LEDSTATUS, LOW);
    delay(300);
    lcd.clear();
  
}
oto i ten jakże skomplikowany kod ;) taki tylko do testów czy oby to działa :)
Artur997
Majsterkowicz
Posty: 101
Rejestracja: 23 paź 2013, 20:22

Re: Biblioteka freqMeasure + Arduino Uno

Post autor: Artur997 » 15 paź 2015, 23:40

A nie lepiej wykorzystać przerwania? W setup() definiujesz: https://www.arduino.cc/en/Reference/AttachInterrupt, w przerwaniu zwiększasz wartość zmiennej o 1, a w loop() co sekundę sprawdzasz wartość zmiennej (a potem ją zerujesz). I tyle - w zmiennej będziesz miał Hz, powinno mierzyć do ok 30kHz
ODPOWIEDZ

Strony partnerskie: