PIC Lampendimmer

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 26 12 2025  02:36:03      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( Vorherige Seite 1 | 2 )      


Autor
PIC Lampendimmer
Suche nach: pic (2060)

    







BID = 150747

hansjüre

Neu hier



Beiträge: 34
 

  


Nö der kostet bei meinem Elektronikhändler ca 23 Euro.

BID = 151073

Nukeman

Schriftsteller



Beiträge: 754
Wohnort: bei Kleve

 

  

Hi,

Quote:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Also heisst das jetzt dass ich die Schaltung ohne den IR Empfänger die LED und den Relaistreiber übernehmen kann und an einem Kanal nen Taster und am anderen den Dimmer ranhängen kann, ohne irgend einen Oszillator ranzubauen ?
Das mit dem Code würd ich dann etwa von http://www.sprut.de/electronic/pic/grund/pwm.htm übernehmen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Richtig, das sollte so klappen.
Ich hatte nicht genau genug in die Spec geschaut, der
16F628 kommt auch ohne Quarz oder sonstige externe
Beschaltung aus. Der interne (RC-)Oszillator läuft dann
mit 4MHz. Für diese Anwendung reicht die Performance
allemal, zudem die PWM noch bequem in Hardware läuft.

Gruss,
Stefan

BID = 151397

hansjüre

Neu hier



Beiträge: 34

Ok danke.
Warte immer noch auf den Controller, sollte in einer Woche eintreffen.
Kann ich evtl. schon n Programm schreiben und am PC simulieren ?. Habs mit MPlab mal versucht, kapier aber dort den Simulationsmodus nicht.
Gibts da vielleicht etwas grafisches ?

BID = 157095

hansjüre

Neu hier



Beiträge: 34

So hab den ganzen Hardwarekram nun hingekrigt, jetzt kommt jedoch das grössere Problem, das Programm für den PIC.
Ich müsste irgendwie n PWM Signal erzeugen, welches durch drücken auf einen Taster langsam von 0 auf 100 prozent und umgekehrt wechsel und sobald ich den Taster loslasse stehen bleibt.
Nur wie stelle ich das nun an, hab keine Ahnung wie ich den PWM Ausgang am PIC nutzen kann.
Als Taktquelle möchte ich übrigens den internen Oszillator mit 4 Mhz nutzen.

BID = 157955

Nukeman

Schriftsteller



Beiträge: 754
Wohnort: bei Kleve

Hi,

So würde die einfachste Lösung als C-Programm für Deinen
Pic aussehen:




Code :


bit bDirection;

#define MAX_DELAY 0x03 // 3 * 65ms Schrittgeschw.
#define TASTE (PORTB & 0x01) // PortB.0 = Key-Input

void main( void )
{
uns8 x;

// Initialisierung
TRISB = ~0x08; // Port B3 = (PWM)Output, alle anderen Bx auf Input
T2CON = 0x05; // Timer 2: Timer2 on, Prescaler 1:4 (arbeitet f. PWM )
PR2=0xFF; // pwm-freq statisch auf ca. 1 kHz
OPTION_REG=0x07; // Timer 0 Prescaler = 1:256 -> ovfl alle 65ms @ 4MHz
CCPR1L =PR2>>1; // Duty 50:50
CCP1CON = 0x0C; // Mode = PWM

while(1)
{
if(TASTE ) // Taste gedrückt
{
if( bDirection ) // aktuell rauf oder runter ?
{
if( ++CCPR1L == 0xFF) // Anschlag niedrigste PW ?
{
bDirection=0; // jetzt andersrum
}
}
else
{
if( --CCPR1L == 0x00 ) // Anschlag oberste PW ?
{
bDirection=1; // jetzt andersrum
}
}
}
for( x=0; x<MAX_DELAY; x++) // MAX_DEL * 65 ms warten, damit es
{ // nicht zu schnell geht
T0IF = 0;
while( ! T0IF ); // wir warten auf christkind
}
}
}



Ein Blick ins Datenblatt zur Funktionsweise der PWM
kann allerdings auch nie schaden

Gruss,
Stefan


Edit:
Wichtig : Der Watchdog muss abgeschaltet sein, sonst
fährt das Dingen zyklisch einen Reset.


[ Diese Nachricht wurde geändert von: Nukeman am  2 Feb 2005  0:55 ]

BID = 158259

hansjüre

Neu hier



Beiträge: 34

Ok, genau das hab ich mir vorgestellt. Bis jetzt hab ich jedoch meine ersten Gehversuche immer mit MPLab gemacht, also in Assembler, C sieht jedoch viel übersichtlicher aus.
Mit welchem Programm kann ich diesen C code in ne Hex wandeln ?? Gibts da vielleicht n Freeware Programm ??

BID = 158336

Nukeman

Schriftsteller



Beiträge: 754
Wohnort: bei Kleve

Hi hansjüre,

ich benutze den CC5X Compiler. Den gibt es vom Hersteller
zum freien Download mit der Beschränkung, dass man nur 1024
Assembler-Zeilen erzeugen kann (1k-Word ). Der Compiler
wird dann in das MPLAB integriert.
Den Compiler bitte mal im Netz suchen, hab die Seite gerade
nicht parat.

Wenn man sein Programm aus mehreren Modulen zusammenstellt,
kann man die 1k-Begrenzung de facto auch umgehen.
( Die Konfiguration dazu in MPLAB ist allerdings etwas
umständlich, aber mit 1k kommt man auch schon eine ganze
Ecke )

Angehängt habe ich eine ZIP-Datei, die den C-Code, den
daraus erzeugten ASM-Code und die wiederum daraus erzeugte
Hex-Datei enthält.

Das Programm ist noch ziemlich rudimentär. Du könntest
jetzt auch nur an der Assembler-Datei weiter arbeiten und
diese anschliessend (ohne Compiler) durch dein MPLAB jagen.

Gruss,
Stefan


BID = 158855

hansjüre

Neu hier



Beiträge: 34

Ok danke, funktioniert wunderbar
Hab jetzt den Compiler auch in mein MPLab eingebaut und versucht den Code noch n bisschen zu ergänzen. Ich möchte noch irgendwie machen, dass wenn man die Taste kurz drückt das Licht sanft bis auf die gewählte Helligkeit angeht oder ausgeht und bei längerem drücken die Helligkeit wie im oberen Programm variert.
Man sollte dann also mit einem Taster sozusagen ein Dimmer mit sanft aus und anschalter haben.
Hab gedacht dass ich sobald die Taste gedrückt wird, in ne Schleife reingehe, welche den Dimmvorgang etwas verzögert und mit nem Kontrollbit festlege ob der Taster betätigt wurde, dass er in den Softstart Teil übergeht, wenn die Schleife nicht zu ende gelaufen ist.
Der aktuelle Stand des PWM Duty müsste in ner Variabel nach dem dimmen gespeichert werden, damit der Softstart dann auf diesen Wert hin fährt.
Leider weiss ich nicht wie man ne Variabel im Arbeitsspeicher ablegt und noch viel schlimmer, habs mit der Warteschleife einfach nicht hingekrigt.

Nach etlichem Probieren spielt jetzt sogar mein PIC verrückt. Irgendwie kann er den Eingang nicht mehr erkennen, hab einfach an RB0 n Taster gegen die Masse angehängt, kann es sein dass dies den Eingang zerstört hat ??
Nicht dass ich den nächsten Eingang auf die gleiche Weise verbrate

[ Diese Nachricht wurde geändert von: hansjüre am  4 Feb 2005 18:00 ]

BID = 159822

hansjüre

Neu hier



Beiträge: 34

Also das mit dem Eingang geht wieder, müsste einfach etwas Beistand beim programmieren haben.


Vorherige Seite      
Gehe zu Seite ( Vorherige Seite 1 | 2 )
Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 187945181   Heute : 3563    Gestern : 18748    Online : 289        26.12.2025    2:36
21 Besucher in den letzten 60 Sekunden        alle 2.86 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0958271026611