Anzeige:

ATmega88

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

ATmega88

Von Zwilling am 04.05.2010 16:02

Hallo zusammen, Ich bin neu hier im Forum aus einem ganz praktischen Grund. Bin blutiger Neuling bezüglich Programmierung von uC kenne mich nur aus in verdrahteter Logik; Printerstellung mit C-MOS Bausteinen resp. Leistungs MOS-FET's. Betreibe eine Sonnenenergie-Anlage Wasser-Wasser mit 80 Print erstellt vor 30 Jahren. Nun muss ich nicht, darf mich aber mit den heutigen Bausteinen beschäftigen und möchte einen Typ von bestehenden Prints, 25 in der Anzahl durch die neue Technik zu ersetzen versuchen.
Es handelt sich um eine Steuerung eines Wasser-Ventil-Motors der als Eingang ausschliesslich ein "L" oder "H" (für Zu oder Auf gewönlicher Drehhahn) zu sehen bekommt, den Rest muss er selber bewältigen.
Interessierte können in der Anlage die zu lösende Aufgabe ersehen und dazu habe noch ein Bild reingestellt wie ich mit C-MOS Bausteinen den Encoder ausführen würde. Hier interessiert mich natürlich wie vorzugehen ist um nicht auf Umwegen zum Ziel zu kommen. Ich habe eine Experimentier-Platine von "FRANZIS" mit einem ATmega88 beschafft und deren Beispiele nachvollzogen. Zu den Fragen:
Wie stelle ich fest welchen Typ uC für die obige Aufgabe benötige?
Wie beginne ich und wo sind "GOSUB" vorzusehen?
Ist die Sprache "BASCOM" dazu geeignet?
Wie würde ein Profi dieses Problem angehen?
Freundlich grüsst "Zwilling"

Von Sam am 04.05.2010 17:33

Ich würde dir sehr gerne helfen, aber ich habe die Aufgabe nicht wirklich verstanden. Bitte erkläre genau, was die Steuerung an Eingängen und Ausgängen hat und wie sie auf was reagieren soll.

Mit BASCOM ist komme ich sehr gut klar. Es gab bis jetzt kein programmtechnisches Problem, dass ich mit BASCOM nicht lösen konnte.

Mfg Sam

Von Zwilling am 05.05.2010 09:36

Hallo Sam,
Es handelt sich um ein hydraulisches Motorventil welches mit einem Bürsten DC Motor mit Reduktiondgetriebe die Funktion "ZU" und "AUF" ausführen soll. Dabei muss der Motor in der Funktion "ZU" gestoppt werden in Abhängigkeit des Stromes der den Motor speist. Die Funktion "AUF" soll nur solange den Motor speisen bis ca. 5 Umdrehungen erfolgt sind, als ob man einen Wasserhahn von Hand öffnen würde. Zum erweiterten Schutze jedoch, falls während der Stellung "AUF" das Strom-Netz ausfällt und beim Wiedereinschalten die Stellung "AUF" beibehalten wurde, wird er nach kaum einer Drehung anstehen und muss daher auch mit einer Stromschwelle geschüzt werden. Das Tacho Signal (2 Adern mit je X Impulsen) muss um die Drehrichtung des Motors festzustellen gegenseitig verzögert werden sodass die "AUF" Funktion erkennbar wird. Der Strom-Sensor für die Vollbrücke (TLE 5205-2) hat einen Innenwiderstand von ca. 0,18 Ohm gegen Erde sodass die 5V Steuersignale des TLE wegen der Spannungsdifferenz keinen Einfluss haben. Die Verarbeitung der Informationen für die Freigabe der nächsten möglichen Laufrichtung soll einerseits feststellen und memorisieren welche Funktion vor dem Motorstopp aktiv war und beim entsprechenden Motor-Übersrtom resp. den abgearbeiteten Drehungen des Motors die Vollbrücke stromlos werden lassen. Andererseits soll ein Start erfolgen wenn der Befehl vom Entpreller einen neuen, gegenüber dem bestehenden Zustand, Wert annimmt. Auch Alarme solle berücksichtigt werden. Der Schalter am Eingang dient der Havarie bekämpfung!
Diese Anordnung habe ich realisiert vor fast 30 Jahren alledings mit einzelnen C-MOS Bausteinen.
MfG Zwilling

Von Zwilling am 10.05.2010 09:44

An SAM
Da ich keine Reaktion auf meine weiteren Erläuterungen bezüglich meinem Projekt finde, würde mich interessieren ob Du ein Moderator bist oder nicht? Wenn nicht, dann könnte vielleicht ein Moderator sich meiner Fragestellungen annehmen. MfG Zwilling

Von pcprofi am 10.05.2010 22:16

Sam ist kein Moderator - aber warum sollte ein Moderator (ich bin einer) sich der Fragestellung annehmen wenn es sonst keiner tut?

Du verwechselst glaube ich die Funktion eines Moderators mit irgendetwas anderem...

Wenn dir keine Antwortet, dann wird vermutlich keiner eine Lösung zu deinem Problem kennen - so einfach ist das. Ich weiß da auch nicht weiter - mit der Materie habe ich so noch nie zu tun gehabt.

Hier wird dir höchstens Geduld helfen, vielleicht findet sich ja noch jemand, der etwas darüber weiß.

Gruß Rainer

Von Zwilling am 11.05.2010 10:55

An pcprofi,
Das ist wenigstens eine Antwort. Ich bin es gewohnt in den Foren Moderatoren oder Administratoren vor zu finden. Dies scheint in diesem Forum nicht der Fall zu sein. Habe es zur Kenntnis genommen. MfG Zwilling.

Von Elektron am 11.05.2010 12:08

Hallo Zwilling,

Moderatoren sind dazu da um - wer hätte es gedacht - zu moderieren. Sie "lenken" die Diskussion, das bedeutet, in Fällen einzugreifen, in denen eine Diskussion abschweift, gegen die Regeln verstößt usw. Sie sind nicht dazu da, dir prompt eine Antwort zu liefern, nur weil es kein anderer tut. Das ist weder hier so, noch woanders. Dazu verfügen Moderatoren über erweiterte Benutzerrechte, etwa das Löschen von Beiträgen jedes Benutzers. Natürlich greift ein Moderator nicht einfach so ein, oder weil er Lust dazu hat.

Ein Administrator verwaltet das gesamte Forum.

Gruß,
Elektron

Von Sam am 11.05.2010 16:11

Da ich hier scheinbar vermisst werde melde ich mich mal wieder.

Ich kann dir bei deinem spezifischen Problem zurzeit leider nicht helfen, da ich dein Problem nicht verstehe. Ich stehe irgendwie auf der Leitung. Allerdings habe ich keine Lust dir einen Code zu liefern, da ich selbst genug zu programmieren habe.
Ich würde dir jedoch in Sachen BASCOM jederzeit helfen. Hast du schon mit BASCOM oder überhaupt µC gearbeitet? Wenn ja, was hast du schon programmiert? Wenn nein, dann arbeite dich ersteinaml in BASCOM ein.

MfG Sam

Von Zwilling am 14.06.2010 15:52

Hallo liebe Mitleser, In der Zwischenzeit habe ich mein Projekt schrittweise mit BASCOM-Code zum Leben erweckt. Jedes Detail wird separat ausprobiert und erst dann in die Main-Schlaufe geschoben. Nun habe ich ein Problem mit dem Timer1. Die Aufgabe besteht darin:Ein externes Tachosignal muss von 0 bis vorgegebene Zahl grösser 255 zählen und nach erreichen des vorgegenenen Wertes einen Portausgang für einige Sekunden auf 1 setzten. Nach Ablauf dieser Verweilzeit beginnt die Zählung wieder von Null sofern ein Tachosignal ansteht. Mit dem Timer0 funktioniert es. Leider muss ich höher bis ca. 3000 zählen.
Ich habe mit den "TCNT1L/H" keinen Erfolg und hoffe, dass jemand von Euch mir weiter helfen kann. Danke und mfG Zwilling.[img][/img]

Von Sam am 14.06.2010 17:34

Hab mir jetzt nicht viel Zeit genommen, aber im Code für Timer1 steht:

Code:
C o n f i g PORTD.4 = I n p u t
PORTD.4 = 1


Das steht beim Timer0 nicht. Vielleicht liegt es daran.

MfG Sam

Anzeige: