Gesammelte Downloads PICkit 2

Ich weiß leider nicht, wie lange die Seite bei „Microchip“ online und aktuell bleibt, jedenfalls hinterlege ich hier den Link, der zu den gesammelten Dowloads für den PICkit-2 Programmer führt.

 

 

 

Eher wieder ein Merker für mich, denke aber, auch andere werden schon gelegentlich nach ähnlichem suchen ;-)

 

 

 

 

 

 

 

Mal eben schnell – Dies noch und das – Ganz kurz nur…

Die geneigten Bastler unter Euch werden das ebenfalls kennen:

Eigentlich hat man zu einem bestimmten Zeitpunkt eher keine Gelegenheit oder wirkliche Möglichkeit, noch in die Werkstatt oder die Bastelecke zu gehen. Allerdings liegt da noch etwas, an dem nur ein Handgriff fehlt, um fertig zu werden.

Bei mir an Silvester eine kleine Schaltung, mit einem PIC 16F688. Also kurz eben die Technik auf den Wohnzimmertisch geholt, der PIC-Programmer braucht ja nur ein USB-Kabel, die Schaltung bekommt alles aus der ICSP-Schnittstelle, Stecker rein, MPLAB an – das geht „Ratzfatz“!

 

Dummerweise hat dann aber doch einiges nicht so reagiert und agiert, wie man es erhofft hat. Laut Programmierung sollte was anderes passieren. Sehen müsste man können, was der Controller da am Port wirklich ausgibt.

OK, dafür hat man ja sein DSO 138, praktischerweise auch mit einer 9V Blockbatterie nutzbar, Platz für ein Netzteil (eher die benötigte 230V Steckdose) hab ich auf dem Tisch nicht ohne weiteres… Es kommt, was kommen muss – Batterie nach 5 Minuten leer, keine neue in Reserve :shock:

 

In Zeiten moderner Kommunikationstechnik findet sich allerdings recht schnell eine Power-Bank, welche an sich dem Smartphone aushilft, wenn es am Akku knapp wird. Allein die Spannung, die da rauskommt, reicht für das DSO nicht, so 9V hätt‘ ich da gern. Da man aber vor Jahren mal einen Step-Up-Wandler gebaut hat, der seit seinem damaligen Einsatz eher brach liegt, ist auf dem Wege bestimmt was zu machen. War eh schon lange in Planung, jetzt ist die Gelegenheit. Allerdings muss nun doch erst der Lötkolben her, schließlich hat die Power-Bank USB Ports, der DSO will einen Hohlstecker und die Wandlerplatine hat Schraubanschlüsse,,,

 

Fazit:

Wohnzimmertisch voll mit Technik, eine Stunde löten in der Werkstatt für die Strippen, das eigentliche Vorhaben nicht einen Schritt weiter…

 

 

Aber: Endlich den Step-Up-Wandler mit der Power-Bank erfolgreich getestet :mrgreen:

 

 

 

 

Jahreswechsel in Assembler für PIC’s ( ;-) )

OK, Clown gefrühstückt, für Insider, Jahreswechsel im Mikrocontroller:

 

 

 

 

    #define Y2016 PORTA,0
    #define Y2017 PORTA,1
    #define Y00Uhr PORTA,2

    bsf Y2016
 Year2016
    btfss Y00Uhr
    goto Year2016

    bcf Y2016
    bsf Y2017
    end

 

Ja ich weiß, blöder Gag! Musste jetzt sein :mrgreen:

 

 

 

 

 

Kleine LED-Spielerei mit RGB-Leuchtdioden

Kleine Elektronikübung am Rande ;-)

 

Das Video unten ist eigentlich eher eine Katastrophe, weder sind die Farben gut getroffen, noch ist beim realen Aufbau ein Flackern zu sehen, besser will es die Kamera auch mit Tricks nicht darstellen… Ich denke aber, um die Arbeitsweise zu illustrieren reicht’s doch. Ursprünglich wollte ich noch nicht einmal einen Blogbeitrag aus dem Ganzen machen, irgendwie ist’s aber nun doch einer geworden :-)

 

Man nehme:

1 x PIC 12F675

1 x RGB LED (OK, ich hab 3 parallel, mit jeweils eigenem Vorwiderstand)

Passende Vorwiderstände für die LED

Ein bisschen elektronischen Kleinkram und irgendeinen durchsichtigen Staubfänger aus dem Haushalt :mrgreen:

Falls jemand den Nachbau startet:

Die Leuchtdioden kommen an die Ports GPIO4, GPIO1 und GPIO0. Welche Farbe an welchen Port ist egal, es kommen alle gleichberechtigt zum Zuge, nur der Farbverlauf ändert sich natürlich.

Hier der .hex-File als .zip Datei (12f675). Config NICHT enthalten, muss beim Brennen festgelegt werden. Interner RC/No Clock, alles andere OFF.

Habe meinem Fall hier die unten an 3. Stelle beworbenen RGB-LED genutzt, Vorwiderstand 220 Ohm für Grün und Blau, 180 Ohm für Rot. Jeweils eine einzelne Leuchtdiode pro Farbe geht auch, andere Farben nach Geschmack, ist ja nur eine kleine Spielerei mit Licht und Farbe.

Da nur 3 Leuchtdioden (bei Beachtung des Gesamtstromes geht natürlich mehr, dazu findet sich auch an anderen stellen im Blog etwas!) angesteuert werden, habe ich keine große Dokumentation erstellt. Einfach Controller im Standardaufbau mit Pullup von 10k an Pin 4 und die Leuchtdioden über jeweils einen Vorwiderstand vom Output-Pin gegen Masse verbauen, Aktiv = High. 100nF Stützkondensator für den PIC nicht vergessen, versorgt wird mit 5V. Bei voller Ansteuerung aller LED sind unter 80mA in meinem Aufbau zu erwarten, das schafft so ziemlich jedes alte Netzteil, stabilisiert sollte es allerdings sein. Progammtechnisch stellt der Ablauf eine ständig wechselnde PWM dar, so wird nur sehr selten der maximale Strom erreicht.

Wie gesagt, kleine Spielerei am Rande, eigentlich wollte ich nur sehen, was die RGB-LED, mit denen ich vollauf zufrieden bin, so leisten. Nachbau wie immer auf eigene Verantwortung ;-)

 

 

 

 

Was man nicht kaufen kann…

… muss man eben selber bauen :-D

Aktuell ein Fall für den Bewegungssensor.

Ich brauche eine Schaltung, welche nicht nur eine justierbare Empfindlichkeit und Einschaltdauer besitzt, auch die Zeit, die bis zur nächsten Aktivierung mindestens vergangen sein muss, soll variabel sein. Zusätzlich müssen mehrere Aktivierungen erfolgen, ehe erneut eingeschaltet wird. Da ohnehin ein PIC 12F675 einen „intelligenten“ Part übernimmt, halte ich mir die Möglichkeit offen, später eine erkannte Bewegung drahtlos zu übermitteln, mal sehen wie ich da was realisiere.

Nun, die Hardware ist fertig, bei der Software für den Mikrocontroller noch nicht ein einziges Bit :mrgreen:

 

 

 

Quick & Dirty Servo

servo_14_llqServosteuerung ohne Schickschnack

Sie funktioniert, macht alles, was ich von ihr erwartet habe und dennoch ->

Diese Servosteuerung ist eine „Quick & Dirty“ Lösung ;-)

 

servo14Ich habe einfach auf die Schnelle eine Lösung gesucht, welche via Tasterdruck einen analogen Servo von einem Ende zu anderen fährt.

Zusätzlich mussten diese Endpunkte justierbar und das Ganze schnell aufzubauen, aber erweiterbar sein. Was soll ich schreiben, das ist mein Entwurf…

(Stromlaufplan geändert, die Verbindung von S1 muss direkt zum PIC gehen, ist in der gezeigten Version schon korrigiert, also nur interessant für Leser, die den alten Plan noch genutzt haben! Sorry, da hatte ich gepennt ;-) )

Da es alles erfüllt, was es soll und da ich gelegentlich nach so einer Schaltung gefragt werde, kommt das Miniprojekt in den Blog. Stromlaufplan und .hex File für einen Pic 16F688 sind als Download unten, bzw. als Bild oben verfügbar.

Vorteil:

  • 11 Bauteile
  • Schnell aufgebaut
  • Taster zieht nach GND, Hall-Sensoren, Reedschalter & Co unkompliziert nutzbar
  • Billig ;-)

Nachteil:

  • Überlauf der Trimmer in der Software nicht abgefangen, bei Endanschlag des Einstellers dreht der Servo um
  • Keinerlei Überlastschutz
  • Nachbau auf eigene Gefahr :mrgreen:

Funktion:

5V auf die Schaltung geben, Taster drücken, Servo fährt in eine Endstellung.

Mit Trimmer Position einstellen. Neuer Tastendruck, Servo fährt in die andere Position, wieder justieren mit dem anderen Trimmer – fertig.

Vorsichtig einstellen! Die Trimmererfassung ist nur sehr rudimentär eingebunden, eben „Quick & Dirty“ :!: Die LEDs zeigen an, an welchem Ende der Servo sich befindet.

Bauteile:

Die Bauteile sind an sich nicht kritisch.

Die LEDs können auch weiß oder purpurviolettpink sein, total egal ;-)

Die Trimmer (R5/R6) dürften auch bei 4k7 oder 10k noch brauchbare Werte liefern, habe ich nicht anders versucht. R1 und R2 würde ich nicht höher 15k und kleiner 8k6 wählen, ist aber eher ein Erfahrungswert. R3 und R4 müssen zu den verwendeten Leuchtdioden passen, mit 220R wird man nichts verkehrt machen, Rest siehe Schaltbild

q__d__servo_x14cbDie Config-Bits sind NICHT(!) im Programm, ich hänge sie links als Bild dran, beim PIC programmieren beachten!

 

>> Dowload .hex und Stromlaufplan qd.zip <<

Wenn mal Zeit ist, werde ich vielleicht eine bessere Version erstellen, mehr brauch‘ ich im Moment einfach nicht…

Man kann eben sehr viel (un)sinnvolles Zeug machen mit den Servos :mrgreen:

 

Einfachst Infrarotempfänger

IR-EmpfaengerFür ein kleineres Projekt habe ich einen einfachen (!) IR-Empfänger benötigt.

Der Ausgang am Drain des FET bedient in der skizzierten Dimensionierung einen Mikrocontroller, dieser übernimmt auch die Auswertung der Signale, so sollen u. a., neben der Befehlsauswertung, Fremdlichtprobleme vermieden werden.

Getestet habe ich das Ganze nur mit 5V Betriebsspannung, bei passendem Abgleich (muss sowieso gemacht werden), sollten aber auch andere Spannungen möglich sein. Ebenso funktionieren wahrscheinlich andere Phototransistoren, habe aber im Augenblick nur den PT15-21 und den PT17-21 zur Hand. Der Abgleich ist recht simpel: Einfach den 470k Trimmer verstellen, bis die Spannung am Drain des BSS138 kippt. Hier auf die Empfindlichkeit der folgenden Stufe achten, für steile Signalflanken reicht die Schaltung so nicht. Mein zu versorgender Controller hat einen Schmitt-Trigger Eingang, also recht unkritisch, es müssen ohnehin nur einzelne 4×8 Bit Datenpakete bedient werden, welche mit ca. 25 KHz gesendet werden. Der Pegel am Ausgang ist invertiert zum IR Signal, ein beleuchteter Phototransistor bewirkt also ein ‚Low‘ am Drainanschluss.

Da ich nur ca. 5-10 cm Reichweite benötige, habe ich mir über größere Entfernungen keine Gedanken gemacht, dafür gibt es ohnehin viele erprobte Lösungen. Mir geht es mal wieder darum, alles möglichst klein zu halten und die Möglichkeit zu haben, die Elektronikkomponenten getrennt zu verbauen. Im Modellbau ist nun einmal meist kein Platz ;-)

 

 

Fotos, Elektronik

Habe für den Blog (und ein paar andere Aufgaben) mal wieder einige Fotos geschossen. Alles Geschmackssache, klar :-)

Vielleicht kann jemand etwas davon brauchen, den Logfiles nach sind anscheinend immer fast alle Fotos von irgend jemandem zu gebrauchen :mrgreen: Privat macht damit was immer Ihr auch wollt, Nutzung im WWW mit Quellenangabe, kommerziell nur mit meiner ausdrücklichen Zustimmung.

Elektronik-A001 Elektronik-A002 Elektronik-A003 Elektronik-B001 Elektronik-C001 Elektronik-D001 Elektronik-D002 Elektronik-D003 Elektronik-D004

 

 

 

 

 

 

 

 

 

 

 

 


Der PIC 12F675 Teil 6 – PIR1 Register

PIC © 12F675 Das nächste Register: PIR1, liegt in Bank 0.

Noch einmal der Hinweis darauf, dass einige der Bits in etlichen Registern eher lesend ausgewertet werden müssen. Also z. B. 1 = ist was passiert, 0 = nichts ist passiert. Auf Nummer sicher gehend, würde ich die entsprechenden Bits VOR ausführen der entsprechenden Funktionen manuell zurücksetzen, wird an den meisten Stellen ohnehin notwendig sein.

 

BIT 7:

1 = EEPROM schreiben fertig, Bit muss manuell gelöscht werden

0 = EEPROM schreiben nicht beendet.

BIT 6:

1 = A/D Wandler fertig, manuell löschen.

0 = A/D Wandler nicht fertig

BIT 5:

Nicht belegt, zu betrachten als ‚0‘

BIT 4:

Nicht belegt, zu betrachten als ‚0‘

BIT 3:

1 = Änderung am Comparator Eingang, manuell zu löschen

0 = Keine Änderung am Comparator

BIT 2:

Nicht belegt, zu betrachten als ‚0‘

BIT 1:

Nicht belegt, zu betrachten als ‚0‘

BIT 0:

1 = Timer 1 (TMR1) Überlauf, manuell löschen

0 = TMR1 kein Überlauf

 

 

 

Der PIC 12F675 Teil 5 – PIE1 Register

PIC © 12F675 Mit den Einstellungen vom ‚PIE1‘-Register werden weitere Funktionen (bzw. Unterfunktionen) der Interruptmöglichkeiten des Controllers eingestellt.

Man muss beachten, dass die generelle Funktion der Interrupts in ‚INTCON‚ eingeschaltet werden muss, sonst geht nix :-) Also dort Bit 7 und ggf. Bit 6 auf „1“ setzen.

 

 

Bit 7:

1 = Interrupt bei Ende eines EEPROM-Schreibvorganges aktiv.

0 = Interrupt bei Ende EEPROM schreiben inaktiv.

Bit 6:

1 = Interrupt bei Ende eines A/D-Wandler Vorganges

0 = Kein Interrupt nach A/D Wandlung.

Bit 5:

Nicht genutzt, zu lesen als „0“

Bit 4:

Nicht genutzt, zu lesen als „0“.

Bit 3:

1 = Interrupt durch Comparator ein.

0 = Interrupt durch Comparator aus.

Bit 2:

Nicht genutzt, zu lesen als „0“.

Bit 1:

Nicht genutzt, zu lesen als „0“.

Bit 0:

1 = Interrupt durch Timer 1 möglich.

0 = Interrupt durch Timer 1 inaktiv.