Skocz do zawartości
damianf125

I2C nie zwraca adresu konwertera

Pomocna odpowiedź

Dzień Dobry wszystkim, założyłem ten temat ponieważ nigdzie nie moge znaleść odpowiedzi na swoje pytanie a mianowicie, dlaczego nie otrzymuje adresu konwertera i2c ? Po załączonych zdjęciach widac ze magistrala i2c nie kończy transmisji , ktoś byłby to w stanie wytłumaczyc ?

1.PNG 2.PNG

Udostępnij ten post


Link to post
Share on other sites

@damianf125 wklej kod programu i pokaż schemat połączeń (albo chociaż napisz co tam masz). Bez tego to wróżenie ze szklanej kuli 🔮

Udostępnij ten post


Link to post
Share on other sites
 
#include <Wire.h>
 
 
void setup()
{
  Wire.begin();
 
  Serial.begin(9600);
  while (!Serial);            
  Serial.println("\nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 0; address < 127; address++ )
  {
  
    Wire.beginTransmission(address);
    
    error = Wire.endTransmission();
    Serial.print (123);
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknown error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(5000);          
}

posiadam arduino nano oraz zwykły wyświetlacz 16 znakowy z konwerterem i2c 

schemayt połączeć standardowy czyli 

5v-vcc

gnd-gnd

a4-sda

a5-scl

kod do wyszukiwania adresu konwertera i2c który zastosowałem

 

Udostępnij ten post


Link to post
Share on other sites

A rezystorki podciągające na a4/a5 są? W Uno można się bez nich obejść, ale w nano nie.

Udostępnij ten post


Link to post
Share on other sites

🙈

kurde 

myślałem ze bez nich sie obejdzie 😞 

o jakiej rezystancji musza byc aby poprawnie działało ? 

Udostępnij ten post


Link to post
Share on other sites

Podobno działa od 1k do 100k ale skrajnych wartości bym nie ryzykował 🙂 Daj 4.7k albo coś podobnego.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

dzięki wieki , a mógłbys  mi wytłumaczyc po co te oporniki i dlaczego działa bez nich na uno a w nano nie ? 

Udostępnij ten post


Link to post
Share on other sites

Oporniki są po to, że urządzenia na i2c albo zwierają coś do GND (czyli podają zero) albo nie zwierają (i wtedy trzeba jakoś tę jedynkę podać). Jak ich nie będzie to na linii będzie albo zero albo czort wie nie co, czyli pewnie też coś koło zera (albo co tak drut z powietrza wyłapie).

W Uno biblioteka Wire włącza wewnętrzne rezystory, w nano czy pro mini już nie. Nie pytaj dlaczego 🙂

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

haha

oki 

dzieki jeszcze raz , myślałem ze jakis bardziej złozony problem a to po prostu tak samo jak w tackt switchu 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

@ethanak co robie źle ?

IMG_20190519_221034.jpg

Edytowano przez damianf125

Udostępnij ten post


Link to post
Share on other sites

Sprawdź jak działa ten program gdy nic nie podłączasz do I2C. A jeśli robisz wszystko OK, to może po prostu konwerter I2C jest uszkodzony. Czasami się zdarza. Dla 100kHz i 5V rezystor powinien być od 1,5-10k, dla 400kHz powinien być max 4k. Jak są nieco większe to tez zadziała, byle magistrala była krótka - mała pojemność. Z drugiej strony nie może być za mały bo im mniejszy tym większe zwarcie, czyli obciążenie prądem urządzeń na magistrali. W Google znajdziesz ładne wykresy dla pullup min i max w funkcji pojemności magistrali, prędkości transmisji i napięcia Vcc. Zazwyczaj są też w kartach katalogowych urządzeń z interfejsem I2C.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

kurcze i2c mam juz przylutowane 😕 

no nic ,jeszcze sie z tym pobawie , jak uda mi sie rozwiazac zagadke to sie odezwe i napisze co było przyczyną. 

Udostępnij ten post


Link to post
Share on other sites

Oporniki miały być do zasilania, a nie do masy.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...