Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: PCF 8591P read/write Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Jens - 12.12.2007 20:18)
 Als Antwort auf Re: PCF 8591P read/write von Peter - 11.12.2007 23:36
Jens nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro
Hallo Peter!

> Der müsste eigentlich ähnlich den 9531 sein oder?

Jo, der ist so ähnlich und wird mehr oder weniger auch genau so angesteuert. Allerdings hat der PCA9531 auch nur an zwei PWM Register und kann daher auch nur zwei PWM Ausgänge ansteuern. Die anderen sechs Ausgänge kannst Du entwerder auf die PWM Register legen oder eben nur EIN und AUS schalten. Dass ist in meinen Augen reine Verschwendung, daher auch der PCA9530.

> Weil der 9530 ja nur einen Adresspin hat. Also kann man nur 2 im Bus haben.

Jo, Du kannst nur zwei Bausteine an einem Bus betreiben. Aber es hindert Dich keiner daran einen "Neuen" I2C-Bus auf zu bauen. Ansonsten bleibt ja noch der PCA9531.

> Macht der eine schöne Analogspannung oder PWM?

Die beiden Bausteine machen nur PWM. Wenn Du möchtest kannst Du aber auch noch den dazugehörigen Schaltplan von meiner Lüftersteuerung haben (dass jetzige Projekt mit PCA9530), da kommt zum Schluss eine "schöne Analogspannung" heraus.

Im angehängten Demo werden beide Register vom PCA9530 mit der maximalen PWM Frequenz betrieben, dass heißt die PWM Frequenz liegt bei 160Hz. An der RS232 wird ein Terminalprogramm benötigt, damit lassen sich dann neue PWM Werte einstellen. Viel Spaß beim testen...

LG Jens

' ---------------------------------------------------------------------------
' --- PCA9530 Demo - für OCBASIC --------------------------------------------
' ---------------------------------------------------------------------------

' Hardware:
' Serielle Schnittstelle an Port[1] (mit Terminal Programm)
' I2C-Bus SCL an Port[5] (fals nicht anders festgelegt)
' I2C_Bus SDA an Port[6] (fals nicht anders festgelegt)

' --- Betriebssystem konfigurieren ------------------------------------------
include "om.def"          ' Betriebssystem Daten der Open-Micro laden
'include "omid.def"        ' Betriebssystem Daten der Open-Midi laden

' --- definition der Variablen ----------------------------------------------
define adresse    byte    ' I2C-Bus Adresse
define ACK        byte    ' I2C-Bus "ACK" vom Slave
define PWM1       byte    ' PWM 1 an LED 0
define PWM2       byte    ' PWM 2 an LED 1

' --- Voreinstellung und Initialisierung ------------------------------------
End2Host=ON               ' Bei Programmende in den HOST-Modus wechseln
i2c_init                  ' Initialisirung I2C-Bus
' ---------------------------------------------------------------------------


' ---------------------------------------------------------------------------
' --- Hauptprogramm ---------------------------------------------------------
' ---------------------------------------------------------------------------
adresse = 192                       ' Adresse PCA9530 (A0 = Low)
PWM1 = 128                          ' PWM 1 - Wert einstellen
PWM2 = 128                          ' PWM 2 - Wert einstellen
print                               ' Leerzeile
print "Programmstart..."           ' Text Ausgabe

#anfang

i2c_start                           ' I2C-Bus starten
  ACK = i2c_write(adresse)          ' Adresse senden, ACK empfangen
  if ACK <> 255 then                ' Wenn "ACK" vom Slave nicht empfangen, dann Fehlerausgabe
    print                           ' Leerzeile
    print "PCA9530 antwortet nicht - Fehler - Prg. Ende..." ' Text Ausgabe
    end                             ' Programmabbruch
  end if
  i2c_write(17)                     ' PSC0 Subadresse + auto-increment
  i2c_write(0)                      ' PSC0 maximum Frequenz (160Hz)
  i2c_write(PWM1)                   ' PSC0 PWM 1 Rate übergeben
  i2c_write(0)                      ' PSC1 maximum Frequenz (160Hz)
  i2c_write(PWM2)                   ' PSC1 PWM 2 Rate übergeben
  i2c_write(14)                     ' Register setzen - PSC0 = LED0 / PSC1 = LED1
i2c_stop                            ' I2C-Bus stoppen

print                               ' Leerzeile
print "PWM1 Daten = "; PWM1         ' Text Ausbabe
print "neue Eingabe: ";             ' Text Ausgabe
input PWM1                          ' Neue Eingabe PWM1
print "PWM2 Daten = "; PWM2         ' Text Ausbabe
print "neue Eingabe: ";             ' Text Ausgabe
input PWM2                          ' Neue Eingabe PWM2

goto anfang                         ' zurück zum Programmanfang
end                                 ' Programmende
' ---------------------------------------------------------------------------


' ---------------------------------------------------------------------------
' Die I2C-Routinen einbinden
' ---------------------------------------------------------------------------

INCLUDE "om_i2c.pro"

' ---------------------------------------------------------------------------
' Die Firmware-Routinen einbinden
' ---------------------------------------------------------------------------

INCLUDE "om_fw.pro"

 Antwort schreiben

Bisherige Antworten:

Re: PCF 8591P read/write (von Peter - 13.12.2007 19:54)
    Re: PCF 8591P read/write (von Jens - 14.12.2007 0:46)
        Re: PCF 8591P read/write (von Peter - 14.12.2007 10:48)
            Re: PCF 8591P read/write (von Peter - 14.12.2007 12:00)
                Re: PCF 8591P read/write (von Jens - 14.12.2007 13:11)
                    Re: PCF 8591P read/write (von Peter - 14.12.2007 23:38)
                    Re: PCF 8591P read/write (von Jens - 14.12.2007 20:59)
                       Re: PCF 8591P read/write (von Peter - 14.12.2007 23:55)
                          Re: PCF 8591P read/write (von Jens - 15.12.2007 19:15)
                             Re: PCF 8591P read/write (von Peter - 16.12.2007 11:55)
                                Re: PCF 8591P read/write (von Peter - 12.10.2008 0:46)
                                   Re: PCF 8591P read/write (von Gerhard - 13.10.2008 12:35)