Geachte,

De kop heet "starten met I2C" en eigenlijk is het een gevolg in een project waarbij ik een tekort aan outputs heb. Het gaat om het genereren van een 8 outputs welke een diversiteit aan "0" en "1" heeft. Eigenlijk moeten ze individueel "Hoog" en "Laag" te maken zijn. Wellicht heb ik de bedoeling duidelijk weten te maken.

Nu zijn hier diverse mogelijkheden voor en ik liet me keus op I2C vallen. In een toegevoegde foto is de opstelling te zien en het schema is ook toegevoegd. Ik programmeer in PicBasis en op diverse sites waar informatie te verkrijgen is, zijn de omschrijvingen divers. Daarmee bedoel ik SCA/SDA of BRESTART/BSTART/BSTOP/BUSACK. Soms ook Busin/Busout/Bstart. De cursus Pic Basic projecten wordt wel gesproken over I2C nl: de BRESTART-BUSACK, ook al zijn er in de projecten ook wel andere communicatie manieren te vinden. Vele manieren, dat is mooi.

De vraag is dan ook aan de ervaring, welke als beginner raadzaam is om te starten. Is het beperken tot Declare SDA en SCL aan een pin nummer goede start of wat anders. Misschien kan iemand een voorzet geven om in de gegeven opzet, 1 ledje te oplichten en weer uit laten gaan.

Bij voorbaat dank,

Marcel

10k pull-up is erg hoog voor standaard (100kHz) en fast (400kHz) i2c op 5v, beter lagere waarde nemen.
Richtlijn is 3mA pull-up (2k2/2k7 is dan een goede keuze). Voor i2c sneller als 400kHz is de richtlijn 20mA, dus nog lagere waarde.

Arco,

Bedankt en gewijzigd.

Marcel

Hallo,

Het is gelukt en alles hing van de juiste adres af wat betrekking had op de gebruikte PCF8574. A1:A2:A3 aan ground geeft een "BusOut %01000000" en dan kan de PCF bereikt worden. Altijd weer gaaf dat het tot leven komt, wanneer er uren aan besteed zijn en het doel bereikt is.

Hieronder de code om een PCF8574, via een 16F628A 8 ledjes 1 voor 1 aan en uit te laten gaan. Ik heb nu mijn aantal outputs te pakken. Nu nog het een ander op de LCD te laten verschijnen.

Groeten,

Marcel

'****************************************************************
'*  Name    : Testen PCF8574_vanuit_16F628A.bas                 *
'*  Author  : Marcel Alkema                                     *
'*  Notice  : Copyright (c) 2024 Marcel Alkema                  *
'*          : All Rights Reserved                               *
'*  Date    : 06-03-2024                                        *
'*  Version : 1 .0                                              *
'*  Notes   : Simpel aan en uit van P0 naar P7                  *
'*          : PCF8574 adres 01000000 (A1:A2:A3: Ground )        *
'****************************************************************
Device 16F628A                     ;Gebruik een 16F628A type
 
Config INTRC_OSC_NOCLKOUT,_        ;Config voor 16F628A 
       WDT_OFF,_
       PWRTE_ON,_
       LVP_OFF,_ 
       MCLRE_OFF

      All_Digital TRUE             ;Alle ingangen digitaal
      Xtal =4
                                 
Declare SDA_Pin PORTB.0            ; SDA op poort B.1
Declare SCL_Pin PORTB.1            ; SCL op poort B.0

 While 1=1                                 
    
    BStart                                  
    BusOut %01000000               ; PCF8574 Adres          
    BusOut %11111111                         
    DelayMS 500                              
    BusOut %11111110                        
    DelayMS 500                              
    BusOut %11111111                         
    DelayMS 500                             
    BusOut %11111101                         
    DelayMS 500                             
    BusOut %11111111                        
    DelayMS 500                              
    BusOut %11111011                         
    DelayMS 500                              
    BusOut %11111111                        
    DelayMS 500                             
    BusOut %11110111                        
    DelayMS 500                              
    BusOut %11111111                         
    DelayMS 500                              
    BusOut %11101111                         
    DelayMS 500                             
    BusOut %11111111                         
    DelayMS 500                              
    BusOut %11011111                         
    DelayMS 500                              
    BusOut %11111111                         
    DelayMS 500                              
    BusOut %10111111                         
    DelayMS 500                              
    BusOut %11111111                         
    DelayMS 500                             
    BusOut %01111111                         
    DelayMS 500                              
    BusOut %11111111                         
    BStop                                    
                                 
Wend

End