Hallo Forumgemeinde, ich benötige einige Unterstützung um ein vorhandenen Bausatz inklusive Programm meinen Bedürfnissen anzupassen. Der Bausatz misst mit einem DS18B20 Temperatur und stellt den parametrierten Tastgrad für ein Bürstenlosen Gleichstrommotor. Die PWM Frequenz liegt bei 10666Hz. Der von mir eingesetzte Motor ist wahrscheinlich ein 3 Phasen Wechselstrom Motor mit eigener Elektronik die ein 10Hz PWM Signal benötigt um die Drehzahl zu regulieren. Er hat eine eigenen 12V= Anschluss und eine 12V= Triger Leitung. Die Maximalleistung ist 400W. Als erstes hätte ich eine frage zum eingesetzten µC PIC12F1572. - Kann man mit "Bordmittel" ein 10Hz PWM erzeugen ohne die Messung des DS18B20 zu stören? - Wenn nicht, gibt es einen alternativen µC - Ist es sinnvoll ein Frequenz Konverter einzusetzen. - Ist das anpassungs- vorhaben überhaupt sinnvoll außer zu lernzwecken. Da der Bausatz von mir gekauft wurde und nicht selbst entwickelt, weiß ich nicht ob ich Schaltung und Quellcode hier so einfach einsetzen darf. Vorab, der Vertreiber des Bausatzes kann oder möchte nicht unterstützen. Hoffentlich habe ich das Problem gut beschreiben können Danke für eure Aufmerksamkeit. PS: Mein wissen ist begrenzt, nicht aber meine Motivation.
Dionysios schrieb: > ich benötige einige Unterstützung um ein vorhandenen Bausatz Welcher? Link? Datenblatt? Dionysios schrieb: > inklusive Programm meinen Bedürfnissen anzupassen. Welches Programm? Link oder Programm selbst zeigen! Dionysios schrieb: > Der von mir eingesetzte Motor ist wahrscheinlich ein 3 Phasen > Wechselstrom Motor mit eigener Elektronik die ein 10Hz PWM Signal > benötigt Link? Datenblatt? Dionysios schrieb: > Kann man mit "Bordmittel" ein 10Hz PWM erzeugen ohne die Messung des > DS18B20 zu stören? Klar geht das. Das ist kein Problem des eingesetzten uC, sondern vielmehr wie das Programm aussieht bzw. deine Hardware (Stichwort EMV). Dionysios schrieb: > Wenn nicht, gibt es einen alternativen µC Brauchst du nicht. Der vorhandene reicht. Dionysios schrieb: > Ist es sinnvoll ein Frequenz Konverter einzusetzen. Für was? Du hast doch bereits den uC. Dionysios schrieb: > Ist das anpassungs- vorhaben überhaupt sinnvoll außer zu lernzwecken. Das weißt mit den gegebenen Infos nur du. Aber selbst wenn man den Code komplett neu schreiben müsste, einen DS18B20 auslesen und eine passende PWM ausgeben ist kein Hexenwerk. Dionysios schrieb: > Da der Bausatz von mir gekauft wurde und nicht selbst entwickelt, weiß > ich nicht ob ich Schaltung und Quellcode hier so einfach einsetzen darf. Wieso nicht? Was spricht dagegen? Lizenzrecht? Oder geht es dir darum ob du es hier Posten darfst?
Dionysios schrieb: > - Kann man mit "Bordmittel" ein 10Hz PWM erzeugen ohne die Messung des > DS18B20 zu stören? Überhaupt kein Problem. Der PIC12F1572 hat PWM-Ausgänge, die unabhängig von jedweder Software arbeiten. DS18B20 kann man mit Timerinterrupts oder mit einfachen Delay-Macros implementieren.
Dionysios schrieb: > ich benötige einige Unterstützung um ein vorhandenen Bausatz inklusive > Programm meinen Bedürfnissen anzupassen. Dionysios schrieb: > Vorab, der Vertreiber des Bausatzes kann oder möchte nicht unterstützen. Gar nicht, oder nicht umsonst? "möchte nicht unterstützen" und "umsonst" würden Sinn ergeben. Vergiss nicht: Mitarbeiter kosten Geld! Einfach den Hersteller fragen, ob du den Sourcecode hier einstellen darfst. Gibt es einen Link zum Produkt oder zur Bauanleitung?
Wenn es der Bausatz ist wo ich vermute: Ist der Code downloadbar. In einer Datei werden die Hardware inits gemacht. Man müsste also nur die PWM Register richtig setzen um auf die 10Hz zu kommen und wäre fertig. Das größte Problem wäre dann, dass es mit Basic(Mikroe) geschrieben wurde. Keine Ahnung ob es da noch kostenlose Versionen gibt.
N. M. schrieb: > Keine Ahnung ob es da noch kostenlose Versionen gibt. Gibt es (Version 7.6): https://www.mikroe.com/mikrobasic-pic Allerdings mit der Einschränkung auf 2kByte Hex-Code bei der Free-Version. Kaufen ist bei der Preispolitik von mikroe leider illusorisch geworden. Gruß JR
Johannes R. schrieb: > Einschränkung auf 2kByte Hex-Code Die einfache Lüftersteuerung braucht keinen Teil davon.
Der Code ist zu finden: https://www.ramser-elektro.at/shop/bausaetze-und-platinen/pwm-fan-universelle-pwm-regelung/ Leider in MikroC od. MikroBasic. Mit bürstenlosem Gleichstrom ist das glaub ich nicht. Eher für Bürstenmotor.
:
Bearbeitet durch User
Johannes R. schrieb: > Kaufen ist bei der Preispolitik von mikroe leider illusorisch geworden. Nun Kaufen würde ich deren Compiler auch nicht. Die sind ein schlechter Witz. Die Lizenzgenerierung übrigens auch. Die ist eine Lachnummer genau wie die Compiler.
:
Bearbeitet durch User
Ich möchte mich als erstes für euer Interesse und Engagement bedanken. @mani du hast natürlich recht das ist in MicroBasic Zu den MicroBasic Compiler, es gibt eine freie Version. Habe den Herren in Österreich kontaktiert und keine Antwort erhalten. Scheint wohl ein Kapazitätsproblem zu sein. Nachdem ich einige Stunden verbracht habe mich in die Materie einzulesen, habe ich mich an euch gewandt um die Machbarkeit festzustellen. N. M. schrieb: > Man müsste also nur > die PWM Register richtig setzen um auf die 10Hz zu kommen da fangen die "drei Probleme" an. -Basistakt ändern? -Prescaler setzen? -? Ich muss sagen das mit der pwm Frequenz habe ich nicht verstanden sub procedure InitHardware ANSELA = %00000000 'All pins are digital PORTA = %00000000 'Reset all IO bits to Input/Output TRISA = %00001010 'Select inputs/outputs 'TRISA.0 = 0 'RA0 = Output = TX 'TRISA.1 = 1 'RA1 = Input = RX 'TRISA.2 = 0 'RA2 = Output = PWM 'TRISA.3 = 1 'RA3 = Input = Option Jumper 'TRISA.4 = 0 'RA4 = Output = LED 'TRISA.5 = 1 'RA5 = Input = 1 Wire 'TRISA.6 = 0 'Not implemented 'TRISA.7 = 0 'Not implemented OSCCON = %11111011 'Intrnal Oscillator 16Mhz PWM3CLKCON = $00 'Config PWM 3 PWM3LDM_bit = 0 'Config PWM 3 PWM3CON = $00 'Config PWM 3 PWM3DCH = $00 'Config PWM 3 PWM3DCL = $00 'Config PWM 3 PWM3PHH = $00 'Config PWM 3 PWM3PHL = $00 'Config PWM 3 PWM3OFH = $00 'Config PWM 3 PWM3OFL = $00 'Config PWM 3 PWM3PRH = 5 'Config PWM 3 Frequency = 10666 Hz PWM3PRL = 220 'Config PWM 3 Frequency = 10666 Hz end sub wie kommt es zu den 10666Hz? Wohl 16MHz/1500 aber warum 1500? Das Brennen könnte ich mit MPLAB X IPE und einen China Klon PIKKIT3 warscheinlich machen.
Dionysios schrieb: > PWM3PRH = 5 'Config PWM 3 Frequency = 10666 > Hz > PWM3PRL = 220 'Config PWM 3 Frequency = 10666 > Hz > end sub > > wie kommt es zu den 10666Hz? Wohl 16MHz/1500 aber warum 1500? Naja, 5*256+220 sind 1500, und das hat sich der Autor wohl einfach so ausgewählt. Du wirst aber auch die Taktquelle für die PWM ändern müssen: PWM3CLKCON = $00 'Config PWM 3
:
Bearbeitet durch User
H. H. schrieb: > Du wirst aber auch die Taktquelle für die PWM ändern müssen: PWM3CLKCON = %01110001 'Config PWM 3 PWM3PRH = 5 'Config PWM 3 Frequency = 10Hz PWM3PRL = 220 'Config PWM 3 Frequency = 10Hz OSCCON = %11111011 kann bleiben? Ah nein das muss warscheinlich %11100011 sein.
:
Bearbeitet durch User
Dionysios schrieb: > H. H. schrieb: >> Du wirst aber auch die Taktquelle für die PWM ändern müssen: > > PWM3CLKCON = %01110001 'Config PWM 3 Hätte %01110000 angenommen. > PWM3PRH = 5 'Config PWM 3 Frequency = 10Hz > > PWM3PRL = 220 'Config PWM 3 Frequency = 10Hz Da komme ich für 10Hz aber auf andere Werte. > OSCCON = %11111011 kann bleiben? > > Ah nein das muss warscheinlich %11100011 sein. Nö, bleibt. Den Wertebereich des Duty-Cycle wird man noch anpassen müssen.
Kannst du mir bitte das erklären mit dem anderen Wert! ich dachte ich könnte den prescaler auf 128 setzen und den Takt auf HFINTOSC 2Mhz PWM3PRH und PWM3PRL belassen. Das hätte ich noch anhängen müssen Sorry!
:
Bearbeitet durch User
Ich wage mal einen Schuss ins Blaue PWM3PRH = 48 PWM3PRL = 212 Danke für deine Geduld.
Dionysios schrieb: > Ich wage mal einen Schuss ins Blaue > > PWM3PRH = 48 > PWM3PRL = 212 > > Danke für deine Geduld. Eigentlich 48 und 211, AFAIR.
Hast du noch Geduld das wir die frage der Duty-cycle Anpassung durchgehen? Scheint im PWM_FAN.mbas geregelt zu sein
Dionysios schrieb: > Hast du noch Geduld Heute Nacht nicht. Aber du kannst ja schon mal nach PWM3DC und PWM3PH suchen.
:
Bearbeitet durch User
H. H. schrieb: > du kannst ja schon mal nach PWM3DC und PWM3PH suchen Da ich das anfahren des Motors mit 50% für 2 Sekunden möchte habe ich die Duty-cycle auf 50% ausgerechnet. Warum ich mir einbilde das Phase 90° sein muss weiß ich nicht. Macht doch einer mal das Licht an! PWM3DCH = 24 PWM3DCL = 105 PWM3PHH = 12 PWM3PHL = 53 PWM3OFH = $00 PWM3OFL = $00 PWM3PRH = 48 PWM3PRL = 211
Dionysios schrieb: > habe ich die Duty-cycle auf 50% ausgerechnet. Bei 10Hz sind 50% Duty aber 0,05 Sekunden. Was hast du eigentlich vor? Stell mal dein Lastenheft bzw. den Text der Hausaufgabe hier rein.
:
Bearbeitet durch User
Das wäre dann auch:
1 | sub procedure PWM2_Set_Duty(dim duty as word) |
2 | duty = word((float(duty) / $FFFF) * 50000) |
3 | PWM2DCH = Hi(duty) |
4 | PWM2DCL = Lo(duty) |
5 | PWM2LD_bit = 1 |
6 | end sub |
Da die Basisfrage zu dem µC beantwortet ist möchte ich den Tread hier Schließen. Den Rest werde ich selbst herausfinden müssen. Vielen Dank für die freundliche Unterstützung
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.