Multivibrator mit 3 verschiedenen Taktintervallen, PIC16f628A

Gast #1568588
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
#1568633
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...)
#1568635
Lesenswert?

Mit PIC kenne ich mich nicht aus.
Nimm doch nen AVR ATtiny13:
1
#define F_CPU   1.2e6
2

3
#include <util/delay.h>
4
#include <avr/io.h>
5

6

7
void delay_s( uint16_t i )
8
{
9
  for( ; i; i-- )
10
    _delay_ms( 1000 );
11
}
12

13

14
int main( void )
15
{
16
  for(;;){
17
    DDRB = 0xFF;
18
    PORTB = 0xFF;
19
    delay_s( 1 );
20
    PORTB = 0;
21
    delay_s( 5 );
22
    PORTB = 0xFF;
23
    delay_s( 10 );
24
    PORTB = 0;
25
    delay_s( 30 * 60 );
26
  }
27
}


Das fertige HEX ist im Anhang.


Peter
Angehängte Dateien:
Gast #1568722
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.
Gast #1568725
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!
Gast #1568733
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.
Gast #1569040
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!
Gast #1569068
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
Gast #1572552
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren