- Labornetzteil AliExpress         
Ergebnis 1 bis 3 von 3

Thema: 2x I²C PCF8574

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.01.2005
    Ort
    Baden-Württemberg
    Alter
    44
    Beiträge
    127

    2x I²C PCF8574

    Anzeige

    E-Bike
    Hallo,

    Ich habe 1. I2C mit dem Taster und LED erfolgreich gesteuert. Nun möchte ich 2. I2C einbauen. Ich möchte LED auf 2. I2C zum Leuchten bringen, wenn ich Taster auf 1. I2C drücke. Irgendwie geht nicht.

    Bild hier  

    Code:
    '                 IC1 PCF8574
    '                *-----------*
    '        GND -> -|A0   P  VCC|- <- +5V
    '        GND -> -|A1   C  SDA|- <-> SDA/Atmega8
    '        GND -> -|A2   F  SDL|- <-> SCL/Atmega8
    ' +5V-Taster -> -|P0   8  INT|-
    '               -|P1   5   P7|-
    '               -|P2   7   P6|-
    '               -|P3   4   P5|-
    '        GND -> -|GND      P4|-
    '                *-----------*
    
    '                 IC2 PCF8574
    '                *-----------*
    '        +5V -> -|A0   P  VCC|- <- +5V
    '        GND -> -|A1   C  SDA|- <-> SDA/Atmega8
    '        GND -> -|A2   F  SDL|- <-> SCL/Atmega8
    '               -|P0   8  INT|-
    '               -|P1   5   P7|-
    '               -|P2   7   P6|-
    '               -|P3   4   P5|-
    '        GND -> -|GND      P4|- -> [1K]-BC547-[1K]-[LED rot ]-GND
    '                *-----------*
    
    $regfile = "m8def.dat"
    
    Config Sda = Portc.4
    Config Scl = Portc.5
    
    Dim X As Byte
    
    I2cstart
    I2cwbyte &B01000010        'IC2 PCF8574
    I2cwbyte &B00000000        'IC2 Ports auf Low setzen
    I2cstop
    
    Do
    
    I2cstart
    I2cwbyte &B01000001        'IC1 PCF8574
    I2crbyte X , Nack          'IC1 P0 abfragen
    I2cstop
    
    If X = 1 Then              'IC1 P0 auf High
    I2cstart
    I2cwbyte &B01000010        'IC2 PCF8574
    I2cwbyte &B00010000        'IC2 P4 auf High setzen
    I2cstop
    
    Else                       'IC1 P0 auf Low
    
    I2cstart
    I2cwbyte &B01000010        'IC2 PCF8574
    I2cwbyte &B00000000        'IC2 P4 auf Low setzen
    I2cstop
    End If
    
    Loop

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    zum lesen eines Einganges beim PCF muss man erst alle (bzw. das gewünschte) Bits setzen, also &HFF an ihn senden, als wenn man alle Ausgänge auf high setzen würde, dann muss der Taster nach Gnd Schalten, damit man ihn als low abfragen kann.
    Wenn beim Lesen des Eingangs eine 1 raus kommt, ist der Schalter nicht betätigt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.01.2005
    Ort
    Baden-Württemberg
    Alter
    44
    Beiträge
    127
    Ahh, danke.

    Ich habe vergessen, einzugeben "I2cwbyte &B01000000"

    Jetzt funktioniert es.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress