hallo ihr profis ich möchte zwei 12v halogen lampen (35-50w) per pwm steuern. über den jp1 sind 5 taster angeschloßssen die aus /lampe links, lampe rechts, beide lampen hell dunkel steuern sollen.software ist nicht das problem. die frage ist nur ob die schaltung so funktioniert und wie groß die wiederstände r1/r2 sein müßen. danke für eure hilfe gruß madwilli
hi, die schaltung ist schon ok so, wenn du dir'n gefallen tun willst, hängste noch drosseln in die 12v versorgungsleitungen vor die lampen, sonst sauste dir die spannung ein. r1/r2 kannste mit 2k2 auslegen, dann fliesst 1/2mA auf's gate vom buz11, damit steuert der locker auf. wenn's dir zuviel stromverbrauch ist, kannst du auch höher auslegen, aber dann sollten noch ableitwiderstände von gate nach gnd führen, sonst will der buz bei jedem flohhuster aufmachen. ander frage mal: ich poste hier wie doof wegen pwm auf tiny26. klappt das bei dir etwa? ich krieg aus dem ding nix raus (getürkt halt nur, PB.3 an, warten, PB.3 aus, ist aber elend. womit programmierst du? assembler? oder was lockeres? gruss, harry
hi harry danke für deine antwort jetzt machst du mir angst!!! ich habe sowas ähnliches schon mit dem 2313 gemacht über soft pwm. hab jetzt extra den attiny26 genommen wegen den 2 pwm ausgängen und wegen smd. ich progge mit bascom , hat bis jetzt immer gereicht. aber wenn das bei dir nicht läuft hoffe ich du findest eine lösung. bis meie attinys da sind ( kann aber noch ein paar tage dauern )kann ich dir nicht sagen ob es bei mir geht.aber wenn sage ich bescheit. kannst du mir vieleicht auch noch sagen wie groß die drosseln sein müßten? dank madwilli
schaltung ist sicherlich gut, aber wie mein vorredner schon sagt: so "schmutzeimer" fehlen noch: drossel zum entstören, die muss den strom aber können. widerstände an den gate's. 0,1 mükrofaräder an den spannungsreglern in kombination mit 100 mükro elko's. ev. eigene spannungsverorgung für die steuerung. tschaui
graus o graus, ich prog auch in bascom, mit fastavr hab ich's auch schon probiert, geht mit jedem controller, nur der tiny bringt mich noch um mein restchen verstand, naja ich bleib dran. für die drosseln gilt mal ganz pauschal: möglichst viel möglichst dicken drahl auf möglichst viel eisen, dann wird's ruhig. neee, nich erschrecken, die kleinen runden markstückgrossen (ooops)dinger tun's ganz brauchbar, die drahtsttärke sollte halt bei 5 amperes nicht unter 0,8 mm liegen, sonst wern die dinger heiss. so long, wir bleiben am ball, harry
@madwilli poste doch mal dein listing, ist doch immer interessant wie der eine oder andere so vorgeht. meckerer gibt's immer, die muß man ignorieren. tschaui
0,1 mükrofaräder an den spannungsreglern in kombination mit 100 mükro elko's muß das auch sein wenn die betriebsspannung aus bleigel akkus kommt? gruß madwilli
reichelt nummer 77A 10µ High Current Funkentstördrossel Festinduktivität, mehrlagige Wicklung auf Ferritkernen. I: 5,00 A R: 0,035 Ohm Durchmesser: 8 mm Länge: 26 mm währe das eine passende ? danke
@madwilli elko's können sicherlich dann kleiner sein, sollen nur ev. schwingungen vermeiden helfen. aber poste doch mal dein listing. tschaui
@dervatt listing habe ich noch nicht da die attinys noch nict da sind. ist jetzt erstmal der planungsteil madwilli
Hallo, was tut ihr euch denn immer so schwer mit dem PWM? man braucht doch nur mal halbwegs das Datenblatt lesen. So init. ich mein Tiny26 mit PWM, allerdings brauche ich nur 1kanal. ;Init Timer 1 as PWM Controller Timer1_INIT: ;die PWM weden mit 31KHz betrieben und eine AUflösung von 8bit == (255=100%) ldi temp0, (0<<CS13)|(0<<CS12)|(1<<CS11)|(0<<CS10) out TCCR1B, temp0 ;Timer 1 Clock Prescaler == CLOCK/4 =16Khz (CS10+CS11), 32KHZ(CS11) ldi temp0, 255 out OCR1C, temp0 ;Auflösung 8Bit des PWM A und B ;Set PWM B On ldi temp0, (0<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(0<<PWM1A)|(1<<PWM1B) out TCCR1A,temp0 ;PWM B = On, kein Inverser Out ldi temp0, (1<<TOIE0)|(1<<TOIE1) out TIMSK, temp0 ;// setze IRQ Flag von timer0 auf 1 Sebastian
Hi "dann fliesst 1/2mA auf's gate vom buz11" Was natürlich Blödsinn ist. Das Gate eines FET stellt im Prinzip einen Kondensator dar. Da fließt, nach dem Umladen, überhaupt (je ein paar nA aber die wollen wir jetzt mal ignorieren) kein Strom mehr. Da eine Glühlampe ziemlich träge ist kann man die PWM-Frequenz eher klein wählen (max. 100Hz) Damit sind die Verluste im Transistor beim Umladen des Gate auch zu vernachlässigen. Zum FET: Der BUZ11 ist hier absolut ungeeignet da er bei 5V Gate-Source-Spannung nicht anständig öffnet. Der Transistor würde warm werden. Besser einen Logic-Level-MOSFET wie z.B. IRLU2905/IRLR2905 (TH/SMD) verwenden. Diesen mit 100-330Ohm Gatewiderstand (um die Schaltflanken etwas zu verschleifen aber trotzdem die Schaltverluste klein zu halten). Zusätzlich noch ein Ableitwiderstand von etwa 10k vom Gate nach Masse um undefinierte Zustände zu vermeiden wenn der AVR im Reset ist. Eine Induktivität ist bei Gleichspannung eher störend. Durch den Wendel der Glühlampe hat man schon genug Induktivität. Es empfielt sich deshalb eine Freilaufdiode antiparallel zur Last. Zur Schaltung: Das isp-Interface fehlt natürlich. AVcc muß mit Vcc und einem 100n Kondensator gegen Masse beschaltet werden. Evtl. noch eine kleine Chip-Induktivität vor AVcc wenn der AD-Wandler verwendet werden soll. Die 100n Kondensatoren vor und hinter dem 7805 fehlen. Die Lampenausgänge würde ich, wenn nicht fest verdrahtet, mit einer Feinsicherung gegen Kurzschluß/Überlast sichern. Wenn die Anwendung etwas komplexer wird als ein paar Zeilen Quellcode würde ich eher zum Mega8 im TQFP greifen. Der ist kleiner als der Tiny26 im SO20 und hat einen Hardwaremultipliezierer, 3 Timer und ein paar mehr Features die man durchaus gebrauchen kann. Schaltpläne bitte als GIF oder PNG in höherer Auflösung. Diese Formate sind für Schaltpläne wesentlich besser geeignet da sie besser komprimieren und das acuh noch verlustfrei (zumindest PNG). War jetzt zwar etwas viel Kritik ist aber nicht böse gemeint. Matthias
@Matthias ich danke dir für deine kritik wenn ich wüßte wie es richtig geht hätte ich nicht gefragt. also die buz11 werden tatsächlich heiß. werde dann woll die von dir vorgeschlagenen typen nehmen. das isp interface brauche ich nachher nicht. besten daank für die tips gruß madwilli
@matthias kritik würd' ich das nicht nennen, korrektur vielleicht. aber das ist ja wohl auch zweck eines forums, wissen und info's austauschen, keiner von uns ist als genie geboren und muss nix mehr lernen, also immer ran mit 'kritik'. zum buz11: hast natürlich recht, ich hatte in meiner schaltung vorher 'ne bd-type, da gab's den basisstrom noch, hab ihn aber gegen buz11 ausgetauscht, vorwiderstand is' aber noch drin. ich regle 'nen scheibenwischermotor damit, der buz macht das richtig gut, am ossi sieht's sauber aus, warm wird nur der 0,1ohm shunt (source nach gnd), der buz bleibt cool. der hängt über vorwiderstand direkt auf dem tiny, geht doch so, oder???? @sebastian sieht echt cool aus, dein init. kriegt man sowas in bascom implementiert? asm in bascom lässt sich (laut bascom) einbinden. mein versuchs-listing, was aber nicht funktioniert, sieht so aus: **** anfang $regfile = "at26def.dat" $crystal = 1000000 ' interener oszillator Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1 'Pwm1a = 100 ' geht nicht, compiler fehlermeldung 'Pwm1b = 200 ' dito Ocr1b = 100 ' keine fehlermeldung End **** ende kompiliert wird ohne fehler, nur tut sich nix am PB.0 - PB.3, das sollen laut datenblatt die oc1a und oc1b ausgänge sein. wasdaszeitkostundnixbringt, gruss, harry
Hi ein BUZ11 ist einfach kein Logic-Level-FET und damit nicht für die Ansteuerung des Gate mit 5V geeignet. Bei kleinen Lasten mag das noch funktioneren ohne das der FET unnötig warm wird. Vergleiche einfach mal die Datenblätter von BUZ11 und IRLR2905 http://www.fairchildsemi.com/ds/BU/BUZ11.pdf (Seite 3 rechts unten) http://www.irf.com/product-info/datasheets/data/irlr2905.pdf (Seite 3 rechts oben) Bei 4V Ugs fließen beim BUZ11 unabhängig von Uds max. 3A. Beim IRLR2905 ist der maximale Strom bei 4V Ugs erst bei über 40A erreicht. Es ist numal so das ein üblicher Power-MOSFET nicht zur Ansteuerung mit 5V Ugs geeignet ist. Die Industrie fertigt nicht umsonst zig Typen die genau für das geeignet sind. Matthias
@harry ich habe jetzt meine tinys bekommen und gleich aufgebaut dann versucht pwm zu aktivieren aber ohne erfolg. geht bei mir auch nur mit soft pwm ich glaube das liegt an der at26def.def der kenn ja nicht mal die befehle Compare1a Pwm1a das selbe programm mit nem 2313 geht. gruß madwilli
genau, das ist der punkt. ist aber bis dahin noch kein problem, 'ne anfrage bei mark alberts hat gebracht, man soll das ocr1a oder ocr1b register direkt beim namen nennen, also 'ocr1a = 100' z.b. das frisst der compiler klaglos, nur kommt nix am pin an. mit 2313 hab ich's auch probiert, geht prima, nur brauch ich den tiny wegen a/d wandler. noch 'ne frage: powerdown beim tiny bringt den in einen endlosen tiefschlaf, aus dem ich ihn nich mehr wachgeküsst krieg. hast du 'ne idee? gruss, harry
an alle die mir geholfen haben ich habe das ding jetzt fertig funktionier alles super und auch die transistoren werden bei weiten nicht mehr so heiß danke madwilli
und noch das layout dazu falls noch jemand einen optimierungs vorschlag hat bitte tut euch keinen zwang an . madwilli
Nach langer Suche und Festellung das es zwischen dem ATtiny26 und ATtiny261 einen Unterschied gibt, habe ich den Ansatz von Sebastian__ aufgegriffen und bin zu dem Ergebnis gekommen:
1 | #include <avr\io.h> |
2 | #include <avr\interrupt.h> |
3 | |
4 | void TMR_Init_v ( void ) |
5 | {
|
6 | DDRB = 0xFF; // PORT B komplett auf Ausgang schalten |
7 | |
8 | //die PWM weden mit 31KHz betrieben und eine AUflösung von 8bit == (255=100%)
|
9 | TCCR1B = (0<<CS13)|(0<<CS12)|(1<<CS11)|(0<<CS10); //Timer 1 Clock Prescaler == CLOCK/4 =16Khz (CS10+CS11), 32KHZ(CS11) |
10 | OCR1C = 0xFF; //Auflösung 8Bit des PWM A und B |
11 | //Set PWM B On
|
12 | TCCR1A = (0<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(0<<PWM1A)|(1<<PWM1B); //PWM B = On, kein Inverser Out |
13 | |
14 | TIMSK = (1<<TOIE0)|(1<<TOIE1); // setze IRQ Flag von timer0 auf 1 |
15 | |
16 | OCR1B = 0x3F; // 25% PWM an PIN 4 |
17 | }
|
18 | |
19 | int main ( void ) |
20 | {
|
21 | TMR_Init_v(); |
22 | while (1); |
23 | }
|
Port B bzw. der PIN4 sollte natürlich auf Ausgang geschaltet sein (1 Std. fummeln und googeln) ( Beitrag 4 http://www.roboternetz.de/phpBB2/viewtopic.php?t=8333) Danke. LG Martin
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.