Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'PCF8574'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona

Znaleziono 2 wyniki

  1. Witam, ma problem z tytułowym scalakiem, a mianowicie podczas montowania układu testowego(mruganie diody LED) na płytce stykowej, przy podłączaniu pinów adresowych do masy następuje zwarcie i układ bardzo grzeje się. Myślałem że to wina konkretnego scalaka po czym kupiłem 3 kolejne scalaki i dalej ten sam problem występuje. Próbowałem później pierwsze podłączyć te piny adresowe lecz przy podłączaniu zasilania następowało zwarcie i scalak grzał się. Sprawdzałem po kilkanaście razy, czy aby na pewno dobrze wszystko podłączyłem, czy nie ma gdzieś zwarć na stykówce, wszystko dobrze było, więc gdzie jest problem?
  2. Witam wszystkich forumowiczów. Jest to mój pierwszy post na forum i jednocześnie pierwszy "większy" projekt na Arduino. Jestem dosyć początkujący, jeżeli chodzi o teoretyczne aspekty elektroniki i prosiłbym o sprawdzenie mojego schematu. Mam problem z multipleksowaniem wyświetlaczy 7-segmentowych o wspólnej anodzie. Cyfry na nich są wyświetlane ale widoczna jest na nich "poświata" liczby, która znajduje się po prawej stronie. Sterowanie pojedynczą liczbą odbywa się za pomocą ekspandera PCF8574 (na schemacie zaznaczone jako A, B, C...), a o tym na który wyświetlacz ona trafi zajmują się 3 rejestry przesuwne 74HC595 (D1...D24 na schemacie). Poniżej załączam schemat. A na zdjęciu poniżej jak to wygląda na wyświetlaczach: Myślałem, że to wina braku kondensatorów przy rejestrach przesuwnych (na początku ich nie było), ale pomimo dodania ich problem nadal występuje. Widać to dobrze na pojedynczym wyświetlaczu w centrum kadru , gdzie powinno być 1, a prześwituje również 2 znajdujące się po prawej stronie. Wyświetlacz ten (również nie wiem czemu) świeci dużo jaśniej niż pozostałe, ale możliwe, że jest innego typu/producenta (wnioskuję po innym ułożeniu pinów). Wspomniany kondensator znajduję się na przy pinie Vcc, a więc możliwie blisko tak jak wskazuje na to dokumentacja układu. Poniżej zdjęcie jego położenia (pierwszy układ to ekspander, dalej 3 rejestry). Całość sterowana jest przez Arduino Uno i jedna z moich hipotez jest taka, że zapis stanu wyjściach ekspandera PCF8574 trwa za długo. Cyfry, które mają zostać wyświetlone, przychodzą z portu szeregowego i są typu string. Napis ten konwertowany jest na tablicę liczb w postaci binarnej, np. 0 to 0b11111100 (czyli 0b[a][c][d][e][f][g][dp]). Każda cyfra jest zanegowana, tak aby na ekspanderze był stan niski, jeśli segment ma zostać zapalony. Poniżej kod, który jest odpowiedzialny za wyświetlanie liczb: //Pin connected to ST_CP of 74HC595 int latchPin = 8; //Pin connected to SH_CP of 74HC595 int clockPin = 12; ////Pin connected to DS of 74HC595 int dataPin = 11; void loop() { //... String stringForDisplay = "181181181123450000"; byte len; byte* bytes = stringToSegment(stringForDisplay, len); /* Zmienna len jest referencją, zwraca długość tablicy. Tablica wyjściowa może mieć mniejszą długość, jeśli w napisie wystąpi kropka - jest ona dodawana do poprzedniej cyfry. */ unsigned long i = 1; for (byte index = 0; index < len; index++) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, i >> 16); shiftOut(dataPin, clockPin, MSBFIRST, i >> 8); shiftOut(dataPin, clockPin, MSBFIRST, i); displayDataLines.write8(bytes[index]); digitalWrite(latchPin, HIGH); i = i << 1; } delete bytes; //... } Każdą sugestię mogę sprawdzić, ponieważ układ aktualnie zmontowany jest na płytce "edukacyjnej".
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.