www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Multivibrator mit 3 verschiedenen Taktintervallen, PIC16f628A


Autor: Noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!
Ich möchte einen Multivibrator bauen,der nach dem Einschalten 3 
verschieden lange Intervalle ausgeben kann. Der Ausgang sollte nach dem 
Einschalten für 1 Sekunde nach High gehen,dann 5 Sekunden auf Low 
bleiben, dann 10 Sekunden auf High gehen und schliesslich 30 Minuten auf 
Low bleiben. Danach soll sich der Zyklus wiederholen bis zum Abschalten 
der Betriebsspannung.Die Zeiten sind nur cirka und müssen nicht auf 
Zehntelsekunden eingehalten werden.
Ich könnte mir vorstellen, das ganze mit einem PIC16f628A und dem JDM 
Programmierer zu realisieren.
Aber..., leider kann ich nicht programmieren.
Ich kann mir die entsprechende Hardware selbst zusammenbauen und den PIC 
brennen.
Vielleicht hat ein Boardmitglied Erbarmen mit mir, und schreibt mir ein 
entsprechendes Programm(ist wahrscheinlich eher klein), welches ich dann 
auf den PIC übertragen kann.
Bitte seid so nett, und greift mit da unter die Arme. Ich kenne in 
meiner Umgebung keinen, den ich da anlabern könnte.
Mit vielen, lieben Dank im Voraus für Eure freundliche Ünterstützung 
verbleibe ich mit lieben Grüssen.

Noob

Autor: Tajas R. (tony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie Zeitnah muss es denn sein? Ich habe zur Zeit viel um die Ohren... 
Ansonsten kannst Du Dir auch ein Tutorial anschauen:
http://www.mstracey.btinternet.co.uk/pictutorial/picmain.htm
In ASM ist das schnell gemacht. Hier kannste die entsprechenden Delays 
generieren lassen, dann musst Du Dich erstmal nicht mit den Timern 
befassen.
http://piclist.com/techref/piclist/codegen/delay.htm
Der Rest ist dann ganz leicht...
Ne Frage noch: Welchen Quarz willste verwenden (Taktfrequenz ist 
logischerweise ganz wichtig...)

Autor: Peter Dannegger (peda)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mit PIC kenne ich mich nicht aus.
Nimm doch nen AVR ATtiny13:
#define F_CPU   1.2e6

#include <util/delay.h>
#include <avr/io.h>


void delay_s( uint16_t i )
{
  for( ; i; i-- )
    _delay_ms( 1000 );
}


int main( void )
{
  for(;;){
    DDRB = 0xFF;
    PORTB = 0xFF;
    delay_s( 1 );
    PORTB = 0;
    delay_s( 5 );
    PORTB = 0xFF;
    delay_s( 10 );
    PORTB = 0;
    delay_s( 30 * 60 );
  }
}


Das fertige HEX ist im Anhang.


Peter

Autor: Noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tony!
Es muss nicht extreaschnell sein. 1-2 Wochen ist locker Zeit.
Vielleicht könntest Du doch...
Als Taktgeber würde ich den internen Oszillator vorschlagen. Das 
reduziert die Dimension der Schaltung und die Zeit muss nicht ultragenau 
eingehalten weden.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es muss nicht extreaschnell sein. 1-2 Wochen ist locker Zeit.

Zeit genug es selber zu machen.

Autor: Noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter!
Danke für Deine ultraschnelle Antwort!
Ein Atiny13 geht sicher auch. Allerdings weis ich nicht, mit welcher 
Hardware der zu programmieren ist.
Kannst Du mir da auch Informationen geben?

Liebe Grüsse!

Autor: Noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Holger!
Zeit schon, aber es ist extrem schwer, einer Kuh(mir) das Fliegen zu 
lernen.
Ich muss das Programmieren dann von Grund auf lernen(hatte noch nie 
Kontakt damit). Experten brauchen dafür möglicherweise nur eine ganz 
kurze Zeit.

Autor: Tajas R. (tony)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, hab mich dann doch mal hingesetzt und mir die zeit genommen. Sollte 
so funktionieren. Es wird hier einfach mal der ganze PortB auf high und 
low gesetzt. schau dir die asm mal an. ist eig ganz leicht...

falls es nicht funzt, nochmal melden...

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Noob,

>> Ich möchte einen Multivibrator bauen,der nach dem Einschalten 3
>> verschieden lange Intervalle ausgeben kann.

Nimmt einfach mal eine vom Sexshop! da brauchst du nichts programmieren, 
habe eine für meine Frau geholt, Sie ist damit sehr zufrieden!

Autor: limbo! (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso? Was ist denn daran so kompliziert?

Was du brauchst ist ein Programmiergerät, dass CodeVisionAVR oder das 
AVR-Studio unterstützt.
(CodeVisionAVR darum, da ich die Erfahrung gemacht hab, dass AVR-Studio 
nicht alle AVRs programmieren kann.)

Dann Programmierst du deinen AVR mit dem Programm von Peter und schaust 
was passiert. Das AVR Tutorial wär dazu als Abendlektüre angebracht. :-)

Sollte der Interne Oszillator doch zu ungenau sein, kannst du im 
Programm noch die Millisekunden ändern, so dass es passt und gut ist.

Grüße
markus

Autor: Noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tony!
Vielen, herzlichen Dank für Dein Programm!!
Ich werde mir ein paar PICs besorgen und jemanden mit einem Brenner 
ausfindig machen. Dann gehts zur Sache...
Ich melde mich wieder, obs klappt.
Muss ich einen bestimmien PIC nehmen, oder lassen sich alle 
handelsüblichen verwenden?
Nochmals ganz vielen, lieben Dank für Deine Bemühungen!

Autor: Tajas R. (tony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es muss auf jeden Fall einer mit nem internen 4MHz Oszillator sein. Wäre 
auf jeden Fall am Besten, wenn Du den 16F628A nehmen würdest.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.