- 3D-Druck Einstieg und Tipps         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: Software PWM mit selbstgelöteter Platine

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    01.04.2007
    Beiträge
    21

    Software PWM mit selbstgelöteter Platine

    Anzeige

    Powerstation Test
    Hallo!

    ich bräuchte wohl hilfe bei der Fehlersuche....
    Es geht dabei um die Helligkeitssteuerung einer LED mittels Pulsweitenmodulation(PWM), wobei die Pulsbreite per Poti verändert werden soll.

    Problem: Es tut sich nichts... , die LED leuchtet nicht und ich weiß so langsam auch nicht mehr weiter :-/
    Der Tansistor ist vom Typ BC547
    Die Leuchtdiode ist eine superhelle, (Coninuous Forward Current If=50mA)
    Poti = 47kOhm

    Hier die Schaltung:
    Bild hier  

    ...und die vom Poti

    Bild hier  

    So sieht die Platine aus.
    Bild hier  

    Das ist das Programm womit ich die PWM und die Analogverarbeitung betreibe.


    Code:
    ;-------------------------------------------------------------------------
    ; Titel : Helligkeitssteuerung einer Leuchtdiode mittels PWM
    ;-------------------------------------------------------------------------
    ; Funktion : Mittels eines Potentiometers wird die Pulsbreite verändert,
    ;	 dadurch wird die LED dunkler bzw heller leuchten.
    ; Schaltung : PORTB1=LED-Rot, PORTC0=Pot1
    ;-------------------------------------------------------------------------
    ; Prozessor : ATmega8
    ; Takt : 3686400 Hz
    ;-------------------------------------------------------------------------
    .include	"avr.h"
    
    begin:	rjmp	main	; 1 POWER ON RESET
    	reti		; 2 Int0-Interrupt
    	reti		; 3 Int1-Interrupt
    	reti		; 4 TC2 Compare Match
    	reti		; 5 TC2 Overflow
    	reti		; 6 TC1 Capture
    	reti		; 7 TC1 Compare Match A
    	reti		; 8 TC1 Compare Match B
    	reti		; 9 TC1 Overflow
    	reti		;10 TC0 Overflow
    	reti		;11 SPI, STC Serial Transfer Complete
    	reti		;12 UART Rx Complete
    	reti		;13 UART Data Register Empty
    	reti		;14 UART Tx Complete
    	rjmp	onADC	;15 ADC Wandlung komplett
    	reti		;16 EEPROM Ready
    	reti		;17 Analog Comparator
    	reti		;18 TWI (I²C) Serial Interface
    	reti		;19 Store Program Memory Ready
    
    ;------------------------------------------------------------------------
    ; Initialisierungen
    ;------------------------------------------------------------------------
    main:
    ;--- Stack Initialisierung ---
    	ldi	r16,hi8(RAMEND)
    	out	SPH,r16
    	ldi	r16,lo8(RAMEND)
    	out	SPL,r16
    ; Ports initialisieren
    	sbi	DDRB,1	; PORTB1 auf Ausgang
    ;--- Interrupts erlauben ---
    	sei
    ;--- Timer 0 initialisieren ---
    	ldi	r16,0b00000100	; Teiler 1/256
    	out	TCCR0,r16	; Teiler+Modus schreiben
    	ldi	r16,0b01100000	; Port, Referenzspannung und Auflösung
    	out	ADMUX,r16
    	ldi	r16,0b11101101	; Modus, Interrupt und Start
    	out	ADCSRA,r16
    ;----------------------------------------------------------------------
    ; PWM und ADC initialisieren	
    	rcall	initPWM	;Schritt auf/ab
    	rcall	initADC
    ;------------------------------------------------------------------------
    ; Hauptprogramm-Schleife
    ;------------------------------------------------------------------------
    mainloop:	wdr
    	out	OCR1AH,r27
    	out	OCR1AL,r26
    	rjmp	mainloop	; Sprung zum Beginn der Hauptprogrammschleife
    ;------------------------------------------------------------------------
    ; UP: ADC initialisieren
    ; Beachte: Interrupt-Vektor "onADC" setzen
    ;------------------------------------
    initADC:	push	r16
    	ldi	r16,0
    	out	ADMUX,r16	; ADC Chanel
    	ldi	r25,0b11011101
    	out	ADCSRA,r25	; enable ADC, INT, start
    	sei
    	pop	r16
    	ret
    ;------------------------------------
    ; ISR: ADC initialisieren
    ; PA: r27:r26 10Bit, r25 8Bit
    onADC:	cli
    	in	r26,ADCL
    	in	r27,ADCH
    	asr	r27
    	ror	r26
    	asr	r27
    	ror	r26
    	mov	r25,r26
    	sbi	ADCSRA,6
    	sei
    	reti
    ;------------------------------------------------------------------------
    ; UP PWM initialisieren
    ; Parameter: keine
    ; PWM Chanel A Mode 1: 8-bit PWM, Phase-Correct, Clock/8
    initPWM:	push	r16
    	sbi	PORTB,1	; PWM-Chanel A
    	ldi	r16,0b10000001	; PWM-Mode
    	out	TCCR1A,r16
    	ldi	r16,0b00000010	; Vorteiler / PWM Frequenz
    	out	TCCR1B,r16
    	pop	r16
    	ret
    ;------------------------------------------------------------------------
    (siehe auch https://www.roboternetz.de/phpBB2/viewtopic.php?t=29280 )

    Als Hardware wird das AVR Testboard verwendet, daher auch die Ports, als Software myAVR Workpad... ich hoffe ihr habt eine Idee woran es liegen kann. Im Chat hat man mir geraten doch mal den Transistor auszulöten, es hat leider auch keinen Effekt gehabt.

    Gruß Vashan

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Die Transistorschaltung ist Mist! Die LED wird aus dem Steuersignal gespeist und nicht direkt aus der 5V-Versorgung. Wenn du Pech hast, könnte das schon den Pin des AVRs gegrillt haben. Da der Vorwiderstand aber ziemlich groß ist (je nach Farbe der LED müsste er viel kleiner sein), stehen die Überlebenschancen gut.

    Richtig wäre:
    PWM über die 10k an die Basis des Transistors
    von 5V aus über die 100 Ohm und die LED an den Kollektor
    Emitter an Masse

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    01.04.2007
    Beiträge
    21
    hi,
    also ich hab das ganze jetzt so gelötet wie du geschrieben hast.

    Bild hier  

    Bild hier  

    Leider funktioniert es immer noch nicht. Was könnt ich denn sonst noch machen ?
    Achja, der Port funktioniert noch einwandfrei. Auf dem Board klappt auch alles nur eben mit meiner selbstgebauten Platine nicht ?! ...

    Gruß Vashan

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Die 10k Basiswiderstand sind recht groß bemessen. Probier mal was kleineres, z.B.1k

    Funktioniert auf dem myavr das komplette Programm? Also mit den dort eingebauten Poti und LEDs? Dann kommt eigentlich nur nioch nen Lötfehler in Frage.
    Mess mal alle Lötverbindungen nach.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    01.04.2007
    Beiträge
    21
    hi nochmals!
    Ich hab leider keinen anderen Widerstand mehr... also kann ich das schlecht ausprobieren.
    Zu dem Programm: Ja, es funktioniert wirklich, nur eben halt nur auf dem Testboard. Kann es vielleicht auch an dem Poti liegen?
    Ich werd mir dann jetzt mal die Lötverbindungen anschauen....

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Gib doch mal den Wert über das onboard-Poti vor. Dann weißt du, ob das externe Poti Schuld sein kann.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    01.04.2007
    Beiträge
    21
    da tut sich leider auch nichts

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    01.04.2007
    Beiträge
    21
    sogar wenn ich auf PortB1 ein 1 signal anlege tut sich nichts?!

    Was kann ich jetzt denn noch ausprobieren? Ist der Transistor vielleicht defekt?......

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo

    Der 10 k basiswiderstand kann schon passen, kommt auf die Stromvertärkung des Transistors an. Ist die bekannt? Such sie aus dem Datenblatt raus.

    Grenze doch den Fehler ein, in dem du die LED Schaltstufe und die Microcontroller Steuerung getrennt testest.

    1. teste die Schaltstufe:
    A) Überbrücke Collector und Emitter des Schalttransistors, dann muss die LED leuchten, andernfalss ist sie dahingeschieden.

    B) Steuere den Transistor ohne den Controller mit einem Widerstand 10 k nach +5V durch, dann muss die LED leuchten, andernfalls ist sie den weg aller irdischen Komponenten gegangen.

    2. Hast du das PWM Signal am Controller Ausgang? Schau mit Oszi nach, oder verändere das Programm auf langsam und miss mit dem Multimeter. Du kannst dir solche Signale auch mit einem hochohmigen! Kopfhörer und einem Serienwiderstand anhören. Ist die erwartete Frequenz da? Verändert sich das Tastverhältnis? Das muss sich etwa wie Obertongesang anhören, wenn du das Tastverhältnis veränderst.

    Ist das Signal da, bekommt es die Schaltstufe auch ?
    Ist das Signal nicht da, debugge.

    Das sind nur erte Vorschläge, der Kern meines Hinweises ist aber: Frage nicht unspezifisch: was kann falsch sein? Das ist schon bekannt: Alles kann falsch sein und Murphy hatte recht.
    Gehe systematisch vor und hake ab, was funktioniert. Auf der Basis dieser Information kannst du dann gezielte und nachvollziehbare Fragen stellen, oder es klärt sich bald wie von selbst auf.

    Ja, und nochwas: dokumentiere bei allen Tests in allen Betriebszuständen die massgeblichen Spannungen. Auch das hilft, dir selbst oder an uns die richtigen Fagen zuj stellen.

    Grüsse,
    Hannes

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    01.04.2007
    Beiträge
    21
    Hallo!

    Also ich habe den Fehler gefunden, warum die LED nicht leuchten wollte. Es war wohl ein Lötfehler. Jetzt habe ich aber ein ganz anderes Problem:
    Die LED leuchtet zwar, aber lässt sich nicht mit dem auf meiner Platine befindlichen Potis steuern... Es funktioniert leider nur mit dem auf dem Testboard (sind beides 47kOhm Potis). Das Poti ist richtig angeschlossen
    Der High(+5V) geht an einen der seitlichen Pins; der Pin in der Mitte geht auf den ADC Port, bei mir ist das PORTC0. Der andere seitliche Pin geht an Low (-). Ein Freund meinte, dass das ist nicht mal notwendig ist. Stimmt das?
    So nochmal zurück zu dem Problem... ich bekomme immer nur 5V an PORTC0, das habe ich schon durchgemessen. Der Widerstand verändert sich auch, wenn ich denn daran drehe. Es bleibt trotzdem bei 5V, unverändert....

    Gruß Vashan

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress