mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu meiner berechnung Windgeschwindigkeit


Autor: wagner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe einen ELV Funkwindmesser umgebaut das er Schnurgebunden 
arbeitet.

Das einzuíge was noch drinn ist ist das Poti für Windrichtung und der 
rredkontackt für die umdrehungen impulse.


Nun frage ich mit einen Timer die zeit zwischen 2 impulsen ab und 
berechne darus die Geschwindigkeit nur ist das problem das sie um ca 50% 
abweicht vom realen wert(Handwindmesser)

1. INIT TIMER 0

void timer0_init(void)
{
TCNT0=0;
TCCR0=(1<<CS00); // Timer 1 ist normaler Timer
TIMSK = (1<<TOIE0);
}


2. Interrupt TIMER 0

SIGNAL( TIMER0_OVF_vect )
{

if(!(PIND & (1<<3)) && start==0)// abfragenob readkontackt für die 
messung
{                               // schon geschlossen ist
start=1;                        //Reaad hat geschlossen
}

if((PIND & (1<<3)) && start==1)  //abfrage ob read wiederoffen
{
plow=1;                          //Read low
}



if(!(PIND & (1<<3)) && start==1 && plow==1)  //read wieder geschlossen
{                                            //Berechnung
plow=0;
char buffer[20];

float v=2.0*3.14159265 *0.065 * (1.0/((float)zi*1.0/31250.0))*3600.0;
 v=v/1.85; /KT/h
 g=(int)v;
sprintf(buffer,"v=%d kt/h\r",g/1000);
send_UART(&buffer[0]);
start=0;
zi=0;
}

if(start==1 && plow==1)zi++; //zeit wird gezählt


}


Ist der Timer zu langsam??????
Stimmt meine Berechnung nicht????

Mein System ein Mega 8 mit 8Mhz Tackt

Danke

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich passt deine Berechnung nicht. Wenn du schon ein "echtes" 
Anemometer zum Vergleich hast kannst du deine Formel ja entsprechend 
anpassen.

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ändere die komplette Logik.

1. Interrupt auf steigende oder fallende Flanke, nicht auf beide.
2. Bei Einstieg in Interruptroutine den Timerwert aus dem Timer lesesn 
und abspeichern.
3. Im nächsten Interrupt liest du wieder den Timerwert aus und rechnest 
die Differenz aus.
4. Filtern (zb Mittelwert) über mehrere Differenzen sonst bekommst du zu 
große Sprünge im Wert.
5. Den Timertakt kennst du, und damit kannst du die Zeit zwischen zwei 
gleichen Flanken berechnen.
6. Rechne mit INTEGER nicht mit FLOAT, dein µC hat keine FPU
7. In der Interruptroutine rechnest du NUR die Differenz aus und legst 
sie in ein Array, die weitere Berechnung erfolgt in der MAIN.


Über die Periodendauer der Frequenz bekommst du die Umdrehungszahl des 
Windrades und daraus kommst du auch die Windgeschwindigkeit.

Autor: Michael K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum noch nen Thread ? Der andere ist ja noch aktiv!

Beitrag "habe noch problem mit der berechnung Windgeschwindigkeit"

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Misst du mit dem Vergleichshandwindmesser in m/s und mit dem Selbstbau 
in kn (engl. kt)? Das ist ungefähr der Faktor 2 (genau 1,852).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.