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
Vermutlich passt deine Berechnung nicht. Wenn du schon ein "echtes" Anemometer zum Vergleich hast kannst du deine Formel ja entsprechend anpassen.
Ä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.
Warum noch nen Thread ? Der andere ist ja noch aktiv! Beitrag "habe noch problem mit der berechnung Windgeschwindigkeit"
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).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.