Home Forum Scrivi una domanda di elettronica ARDUINO + ADC1115 Resistenze di PullUP

Questo argomento contiene 4 risposte, ha 2 partecipanti, ed è stato aggiornato da gcam67 gcam67 2 anni, 9 mesi fa.

Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #58713
    gcam67
    gcam67
    Partecipante

    Devo collegare l’adc1115 tramite i2c all’arduino. Certe volte riconosce il nuovo dispositivo e a volte no. E’ dovuto alle resistenze di pull-up da inserire sulle linee sda ed scl.
    se si devono essere dimensionate in che modo ?

    oppure qual’è può essere la causa ?

    #71221

    Emanuele
    Keymaster

    Probabilmente è un problema di resistenze di pullup, mettici 47K e facci sapere :)

    #71235
    gcam67
    gcam67
    Partecipante

    Niente da fare ho provato con due da 100K in parallelo. Solo con 100K, e con 2 e 3 resistenze in parallelo da 10K.

    #71240

    Emanuele
    Keymaster

    Il valore dei pullup non è fondamentale, da 10K a 47K non ho mai avuto problemi.

    Direi che a questo punto è il caso di indagare sulla comunicazione I2C. Immagino tu non possa debuggare….

    Potresti fornire maggiori dettagli sull’interfacciamento software, se ad esempio hai usato la libreria I2C di Arduino e come l’hai configurata.

    #71247
    gcam67
    gcam67
    Partecipante

    grazie.
    Come si fa a debuggare ?
    Al momento utilizzo I2CScanner.pde per vedere i dispositivi collegati. Alcune volte a funzionato.

    Utilizzo la libreria standard di Arduino I2C, è funziona anche se all’inizio ho avuto qualche problema con il BMA180.
    Utilizzo una classe di test che utilizza una libreria creata per l’ADC1115.

    http://www.i2cdevlib.com/

    #include
    #include “ADS1115.h”
    #include “I2Cdev.h”
    ADS1115 adc1115;

    #define LED_PIN 13
    bool blinkState = false;

    void setup() {
    // join I2C bus
    Wire.begin();

    // initialize serial communication
    Serial.begin(115200);

    // initialize all devices
    Serial.println(“Initializing I2C devices…”);
    adc1115.initialize();

    Serial.println(“Testing device connections…”);
    Serial.println(adc1115.testConnection() ? “ADS1115 connection successful” : “ADS1115 connection failed”);

    }

    void loop() {
    delay(100);
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);
    }

Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.