Forum: Mikrocontroller und Digitale Elektronik 2 Pumpen mit Atmega8 ansteuern


von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Möchte 2 Pumpen über 2 verschiedene Eingänge steuern.Programm 
funktioniert aber leider nicht!?

von endurance (Gast)


Lesenswert?

MCU Typ? Schematic?

von Thomas (Gast)


Lesenswert?

Atmega 8L-8PU

was meinst du mit Schematic?

von ich (Gast)


Lesenswert?

Thomas schrieb:
> Atmega 8L-8PU
>
> was meinst du mit Schematic?

Schaltplan.

von Patrick (Gast)


Lesenswert?

Geil, endlich mal wieder eine Aufgabenstellung, wo das Forum erraten 
darf, welches Problem der Autor eigentlich hat! (Nein, "geht nicht" ist 
keine zulässige Fehlerbeschreibung - das lasse ich zwar z. B. meiner 
technisch völlig unversierten Großmutter durchgehen, aber von jemandem, 
der mit Mikrocontrollern basteln will, erwarte ich detaillierte 
Informationen)
Und die Screenshots im Anhang sind auch hoffentlich nicht ernst gemeint, 
oder?
Bitte den Quellcode an das Posting anhängen; mit Dateiendung ".c" 
erlaubt die Forensoftware sogar, das Ganze lesbar darzustellen.

Zum Problem: Zwei Fehler bzw. Fallstricke fallen beim ersten Durchsehen 
auf:
- Die Berechnung der Timer-Werte (Stichwort: Overflow)
- Die Initialisierung von Timer 2 fehlt

Beides führe ich hier nicht näher aus; bitte Forensuche / Tutorial 
benutzen.

von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Ich bin halt anfänger!!
Muss ich Timer2 wie Timer1 initialisieren??

von Stephan M. (stmz)


Lesenswert?

Thomas schrieb:
> Ich bin halt anfänger!!
> Muss ich Timer2 wie Timer1 initialisieren??

Das ist ja auch völlig in Ordnung "Anfänger" zu sein. Jeder hat einmal 
so angefangen. Dennoch könntest du dir bei deiner Problembeschreibung 
mehr Mühe geben, denn schließlich möchtest du ja, dass sich eine andere 
Person deinem Problem annimmt. Also sollte man versuchen es dieser 
Person so einfach wie möglich zu machen, auch wenn das für dich etwas 
mehr Arbeit bei der Erstellung deiner Beiträge bedeutet.

Ohne Schaltplan wissen wir ja nicht mal was genau angeschlossen ist ...

Also poste bitte dein Problem nochmal detaillierter:

* Wie sieht der Schaltplan aus
* Was genau funktioniert nicht
* Wie äußert sich dieser Fehler
* Was möchtest du genau erreichen bzw. was sollen die Pumpen machen

Gruß
Stephan

von spess53 (Gast)


Lesenswert?

Hi

>OCR2 = ((potipumpe+400)*14>>3);

Timer2 ist ein 8Bit-Timer. OCR2 kann maximal 255 sein.

MfG Spess

von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Also,
ich möchte eine Pumpe mit einem Regler(0-5V) über den Atmega8 ansteuern 
und die andere Pumpe mit einem Poti(0-5V) über einen zweiten Eingang 
ansteuern. Das Programm für eine Pumpe habe ich geschrieben und es läuft 
auch.
Nun weiß ich nicht wie ich zwei Signale mit dem Atmega verarbeiten kann.
Vielen Dank im voraus für die schnelle Antworten!!

von spess53 (Gast)


Lesenswert?

Hi

>Nun weiß ich nicht wie ich zwei Signale mit dem Atmega verarbeiten kann.

Indem du nicht jedes mal den ADC initialisierst, sonden nur den Eingang 
mit den MUX-Bits umschaltest.

Du brauchst auch keine zwei Timer. TIMER1 hat 2 Compareregister mit 
denen man zwei PWM-Kanäle realisieren kann.

MfG Spess

von Falk B. (falk)


Lesenswert?

@  Thomas (Gast)

>      Foto.JPG
>      33,1 KB, 0 Downloads

Was soll man dort erkennen? Lies mal was über Bildformate.

>ich möchte eine Pumpe mit einem Regler(0-5V) über den Atmega8 ansteuern
>und die andere Pumpe mit einem Poti(0-5V) über einen zweiten Eingang
>ansteuern. Das Programm für eine Pumpe habe ich geschrieben und es läuft
>auch.
>Nun weiß ich nicht wie ich zwei Signale mit dem Atmega verarbeiten kann.

Wollen wir wetten, dass das nicht stimmt? Du hast es abgeschrieben und 
zusammenkopiert, ohne es wesentlich zu verstehen. Denn sonst würde dir 
die 2. Pumpe keine großen Probleme machen.

Lies mal was über Timer und den ADC im C-Tutorial, dann klappt das 
auch mit den 2 Pumpen.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR

http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

Den ADC muss man nur einmal initialisieren, danach nur noch den Kanal 
umschalten. Dazu muss man etwas über Bitmanipulation wissen.

MFG
Falk

von Thomas (Gast)


Lesenswert?

Sorry aber ich finde da nichts mit 2 Pumpen! Ein PWM-Signal soll an PB1 
und das andere an PB2 anliegen.welches Register muss ich denn ändern?

von Falk B. (falk)


Lesenswert?

@  Thomas (Gast)

>Sorry aber ich finde da nichts mit 2 Pumpen!

???

> Ein PWM-Signal soll an PB1
>und das andere an PB2 anliegen.welches Register muss ich denn ändern?

Schon mal das Datenblatt versucht zu lesen? Das Kapitel "16 Bit 
Timer/Counter1" ist sehr aufschlußreich.

Am Ende sind es ZWEI(!) lumpige Register, die man richtig (tm) 
konfigurieren muss.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.