
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo zusammen! Ich hab gerade eure Postings gelesen und als NewCommer, der auch nach einer solchen Lösung sucht, folgende Fragen: 1) Gibt es eine alternative Lösung zu der Variante von Holger, die mir die Ports 1-8 (Station) freihält, wenn ja, kann jemand so nett sein, sie einem absoluten "Greenhorn" wie mir näherzubringen. 2) -jetzt zeigt sich gleich die Schwere meiner Unbedarftheit: Ich habe das Programm von Holger mehrmals durchgesehen und versucht, dem Quelltext zu folgen. Was ich aber nicht verstanden habe, wo ist eigentlich der Einsprungpunkt von meinem Hauptprogramm, wenn ich den (die) Wiederstands- werte ändern will und wo/wie definiere ich den Wiederstanswert, den ich am Poti einstellen möchte? Recht herzlichen Dank im Voraus - habt Nachsicht mit mir, mühsam ernährt sich das Eichhörnchen ! lg, max > > Hallo, > > > > ich habe mich in letzter Zeit mit elektronischen Vorschaltgeräten und deren Dimmbarkeit beschäftigt > > und möchte nun mit der C-Control und EVG's für Leuchtstofflampen eine Steuerung für die Aquarium- > > beleuchtung realisieren. Um die EVG's (von Osram) dimmen zu können, benötigen die ein > > Potentiometer von 100 KOhm an den Steueranschlüssen. Kann man nun mit der C-Control bzw. mit > > einem Zusatzmodul eine elektronisches Potentiometer programmieren und den Widerstand verändern, > > um somit die EVG's zu steuern ? Ich habe bis jetzt noch keine Erfahrung mit der C-Control gesammelt, > > da ich noch auf der Suche bin nach einer geeigneten Steuerung. > > Danke schonmal. > > > > Gruß Jens > > > Hallo, > Habe das mit dem Poti schon probiert. Klappt auch prima soweit. > Habe selbst das DS 1803-050 genommen. Den I2C-Bus bilden bei mir Port[1] und > Port[2]. Man könnte auch den I2C-Bus der C-Control nehmen. Dabei muss man > aber aufpassen was man macht. EEProm abmelden, anmelden und so Sachen. > Habe auch eine Assemblerlösung dafür (nicht von mir geschrieben, nur kopiert). > > '************************************************************************************************** > ' > ' C-Control/BASIC I2C-Poti.BAS > ' > ' Autor: > ' Holger Tyrahn > ' Datum: > ' 05.06.2002 > ' Aufgabe: > ' steuert ein über den I2C-Bus angeschlossenes Potentiometer DS 1803-050 > '************************************************************************************************** > '************************************************************************************************** > > define SCL port[1] > define SDA port[2] > define Adress_byte byte > define Command_byte byte > define Data_byte byte > define i byte > define wert byte > define zahl byte > > #zufall > for Data_byte = 0 to 255 step 1 > gosub Poti_1a > gosub Poti_schreiben > return > next > > '************************************************************************************************** > > #Poti_1a > Adress_byte = 88 'Adresse des jeweiligen Poti > Command_byte = 169 'schreiben Poti XX a > 'Command_byte = 170 'schreiben Poti XX b > 'Command_byte = 175 'schreiben Poti XX a und b mit demselben Wert > 'Data_byte = 128 'Werte von 0 bis 255 > return > > #Poti_1b > Adress_byte = 86 'Adresse des jeweiligen Poti > 'Command_byte = 169 'schreiben Poti XX a > Command_byte = 170 'schreiben Poti XX b > 'Command_byte = 175 'schreiben Poti XX a und b mit demselben Wert > Data_byte = 128 'Werte von 0 bis 255 > return > > #Poti_2a > Adress_byte = 88 'Adresse des jeweiligen Poti > Command_byte = 169 'schreiben Poti XX a > 'Command_byte = 170 'schreiben Poti XX b > 'Command_byte = 175 'schreiben Poti XX a und b mit demselben Wert > Data_byte = 128 'Werte von 0 bis 255 > return > > #Poti_2b > Adress_byte = 88 'Adresse des jeweiligen Poti > 'Command_byte = 169 'schreiben Poti XX a > Command_byte = 170 'schreiben Poti XX b > 'Command_byte = 175 'schreiben Poti XX a und b mit demselben Wert > Data_byte = 128 'Werte von 0 bis 255 > return > > '******************** Poti-Subroutinen ************************************************************ > > #Poti_lesen > gosub start > wert = Adress_byte + 1 > gosub putbyte > gosub getack > gosub getbyte > gosub giveack > gosub stop > 'print "gelesen : ";zahl 'stand vorher hinter getbyte > return > > #Poti_schreiben > gosub start > wert = Adress_byte > gosub putbyte > gosub getack > wert = Command_byte > gosub putbyte > gosub getack > wert = Data_byte > gosub putbyte > gosub getack > gosub stop > print "schreibe Wert: ";wert > return > > '******************* Anfangsbedingung für den I2C - Bus ******************************************* > > #I2C_Bus_start > SDA = 1 : SCL = 0 : SDA = 0 > for i = 0 to 3 > gosub stop > next > > '******************** I2C-Subroutinen ************************************************************* > > #start > SCL = 1 > SDA = 1 > SDA = 0 > SCL = 0 > SDA = 1 > return > > #stop > SDA = 0 > SCL = 1 > SDA = 1 > return > > #getbyte > zahl = 0 > for i=7 to 0 step -1 > SCL = 1 > if SDA <> 0 then zahl = zahl + 1 shl i > 'print " empfangenes Bit: " ; SDA ; " Byte: ";zahl > SCL = 0 > next > SDA = 1 > return > > #putbyte > for i=7 to 0 step -1 > if (wert and 1 shl i) = 0 then SDA = 0 else SDA = 1 > SCL = 1 : SCL = 0 > 'print" geschicktes Bit: ";SDA > next i > SDA = 1 > return > > #getack > SDA = 1 > deact SDA > SCL = 1 > 'wait not SDA 'unter Basic auskommentieren, da Simulation hier stockt > SCL = 0 > return > > #giveack > SDA = 0 : SCL = 1 : SCL = 0 : SDA = 1 > return > > '************************************************************************************************** > |
| Antwort schreiben |