Gast
#4586890
Hallo, kurz zum Hintergrund: Ich möchte mit einem µC eine Drehstrom-Leistungsmessung realisieren. An den Analogeingängen kommen die jeweligen aufbereiteten positiven Sinus-Halbwellen Signale der 3 Spannungs und 3 Stromwandler an. Am PWM Ausgang soll die Drehstrom-Wirkleistung ausgegeben werden. Eine Testschaltung mit einer Phase und einem Arduino Uno hat funktioniert. Das Arduino Programm ist im Anhang. Kurze Programm Erläuterung: Aus den Analogeingängen werden Spannung und Strom kontinuierlich eingelesen und der höchste Wert mit Zeitstempel gespeichert (û und î). Nach dem Spannungsnulldurchgang wird die Periodendauer der vorherigen Periode und die Phasenverschiebung durch die Zeitstempel ermittelt. Desweiteren wird dann die Leistung mit P = U * I cos phi = û/wurzel(2) * î/wurzel(2) * cos phi ermittelt. Jetzt soll das ganze auf einer externen Platine mit einem µC aufgebaut werden. Da habe ich den Attiny26 ausgesucht, er hat die IO's die ich benötige und war bei Conrad verfügbar. Jetzt muss ich das Programm aus Arduino in C in Atmel Studio umwandeln, dass es auf den Attiny26 übertragen werden kann. In C für µC bin ich noch Anfänger, eine einfache Blinkschaltung geht so. Einen Code zum Auslesen der Analogeingänge habe ich gefunden: http://rn-wissen.de/wiki/index.php?title=ADC_%28Avr%29 ebenso zur Ausgabe der PWM: http://rn-wissen.de/wiki/index.php?title=Timer/Counter_%28Avr%29 Jetzt bin ich auf der Suche nach einem Code für eine Zeiterfassung, da habe ich noch nichts gefunden. In Arduino kann man mit t1 = millis(); die interne Zeit in µS erfassen. An einer anderen Programmstelle ebenso und dann mit t2 - t1 die delta Zeit berechnen. Das bräuchte ich hier in C.
