Snel antwoord
Als je veel eenvoudige aan/uit-uitgangen nodig hebt en de laagste kosten per pin wilt, gebruik dan een 74HC595 schuifregister. Als je een paar uitgangen nodig hebt en microcontroller-pinnen wilt besparen, gebruik dan een I2C-expander zoals de PCF8574. De afweging is tussen pin-aantal, bedradingsgemak en stroomsterkte.
Hoe het 74HC595 schuifregister werkt
De 74HC595 is een 8-bits serieel-in, parallel-uit schuifregister. Je stuurt gegevens bit voor bit met behulp van drie microcontroller-pinnen: data, klok en latch. Eenmaal gelatcht behouden de acht uitgangen hun status totdat je ze opnieuw bijwerkt. Dit maakt het ideaal voor het aansturen van LED's, relais of andere laagstroombelastingen. Omdat het een schuifregister is, kun je meerdere chips in serie schakelen om 8, 16, 24 of meer uitgangen toe te voegen terwijl je slechts drie microcontroller-pinnen gebruikt. De 74HC595 kan voldoende stroom leveren of opnemen voor standaard LED's, maar voor belastingen met een hoger vermogen heb je een driver nodig zoals een transistor of een speciale driver-IC. De DIP-16-behuizing is breadboard-vriendelijk, en onze 74HC595 8-bits Serieel Schuifregister (DIP 16) (Verpakking van 5) geeft je vijf chips voor minder dan $1.40, wat een zeer lage kostprijs per uitgang is.
Hoe I²C-port-expanders werken
I²C-port-expanders zoals de PCF communiceren via de tweedraads I²C-bus (SDA en SCL). Elke expander heeft een uniek I²C-adres, zodat je er meerdere op dezelfde bus kunt aansluiten zonder extra pinnen te gebruiken. De PCF biedt quasi-bidirectionele I/O-pinnen, maar dit zijn geen echte push-pull-uitgangen; ze kunnen stroom sinken maar leveren zeer weinig. Daardoor zijn ze beter geschikt voor ingangen of voor het aansturen van belastingen die een laag signaal nodig hebben, zoals het laag trekken van een transistor basis. Omdat I²C een bus is, is de bedrading eenvoudiger: slechts twee draden voor data plus voeding en aarde. Het nadeel is echter de snelheid en stroomcapaciteit. I²C is langzamer dan de seriële interface van het schuifregister, en de beperkte bronstroom betekent dat je vaak externe drivers nodig hebt voor LED's of relais. Ook heeft elk I²C-apparaat een uniek adres nodig, dus je kunt er maar een beperkt aantal hebben. beperkt aantal per bus.
Belangrijkste verschillen: snelheid, stroom en pincodekosten
De 74HC595 wint op snelheid en stroomaandrijving. Hij kan zeer snel worden bijgewerkt, waardoor hij geschikt is voor multiplexing- of PWM-achtige effecten als je de latch snel omschakelt. De uitgangen kunnen voldoende stroom leveren of opnemen voor standaard LED's. De I2C-expander is langzamer en heeft een zwakkere uitgangsaandrijving, maar gebruikt in totaal slechts twee microcontroller-pinnen, ongeacht hoeveel expanders je in serie schakelt. Het schuifregister gebruikt drie pinnen per keten, maar je kunt veel chips in serie schakelen zonder adresconflicten. De kosten per uitgang zijn lager met de 74HC595, vooral wanneer je pakketten koopt zoals het 5-pakket dat wij aanbieden. Voor I2C-expanders zijn de kosten per pin hoger en heb je mogelijk extra drivercomponenten nodig voor belastingen die meer stroom vereisen.
Praktische overwegingen voor bedrading en code
Het aansluiten van een 74HC595 is eenvoudig: sluit VCC en GND aan, verbind vervolgens SER (data) met een microcontroller-pin, SRCLK (klok) met een andere en RCLK (latch) met een derde. Je kunt meerdere in serie schakelen door Q7' van het ene schuifregister te verbinden met SER van het volgende. Voor I2C-expanders sluit je SDA en SCL aan op de I2C-pinnen van je microcontroller en stel je de adrespinnen in om conflicten te voorkomen. In code gebruikt de 74HC595 shiftOut() of SPI, terwijl de PCF8574 Wire-bibliotheekcommando's gebruikt. Als je inputs moet uitlezen, kan de PCF8574 dat doen, maar de 74HC595 kan niet lezen; deze is alleen voor output. Dat is een belangrijke beperking: als je project zowel inputs als outputs nodig heeft, heb je mogelijk een andere expander of een combinatie nodig.
Wanneer kies je welke optie
Kies de 74HC595 wanneer je veel uitgangen, snelle updates en directe LED-aansturing nodig hebt. Hij is perfect voor LED-matrices, 7-segmentdisplays of het aansturen van veel relais via een driver. Kies een I2C-expander wanneer je weinig microcontroller-pinnen hebt en slechts een paar uitgangen nodig hebt, of wanneer je ook ingangen wilt toevoegen. I2C is ook beter wanneer je meerdere apparaten op dezelfde bus hebt en de bedrading wilt minimaliseren. Als je motoren moet aansturen, overweeg dan een dedicated shield zoals het Motor Drive Shield L293D voor Arduino, dat de stroom regelt en een handige interface biedt. Voor eenvoudige statusindicatoren kunnen een paar 3mm diffuus LED (wit) direct aangestuurd vanaf een 74HC595 of via een transistor vanaf een I2C-expander goed werken. En als je aan het prototypen bent met DIP-chips, maakt een zwarte 28-pin ZIF socket het wisselen van IC's gemakkelijk en vermindert pinschade.
Afwegingen in één oogopslag
- Kosten versus bedradingsgemak: 74HC595 gebruikt 3 microcontroller-pinnen per keten, maar kan goedkoop veel uitgangen toevoegen. I2C-expanders gebruiken slechts 2 pinnen in totaal, maar kosten meer per uitgang en hebben adresbeperkingen. Kies een schuifregister voor veel uitgangen; kies I2C voor weinig uitgangen en minimale pinnen.
- Uitgangsstroom en snelheid: 74HC595 kan voldoende stroom leveren/opnemen voor LED's en werkt snel. I2C-expanders hebben een zwakke bronstroom en lagere updatesnelheden. Gebruik 74HC595 voor directe LED-aansturing of snelle updates. Voor laagstroomsignalen of ingangen is I2C geschikt.
- Ingangscapaciteit: 74HC595 is alleen voor uitgangen. I2C-expanders zoals PCF8574 kunnen ingangen lezen, maar met quasi-bidirectionele pinnen. Als je ingangen nodig hebt, is een I2C-expander flexibeler; anders is een schuifregister eenvoudiger voor uitgangen.
Productgegevens
- 74HC595 8-bits serieel schuifregister (DIP 16) (verpakking van 5): Bevat 5 74HC595 8 bit seriële schuifregisters (DIP 16) IC's. Het gegevensblad is hier beschikbaar op ons ondersteuningsforum. Houd er rekening mee dat de fabrikant van deze chip kan wijzigen. Vijf schuifregisters geven u tot 40 uitgangen voor een zeer lage prijs, en de DIP-behuizing is eenvoudig te gebruiken op een breadboard. Het gegevensblad helpt u bij het controleren van de pinout en timing.
- Motor Drive Shield L293D voor Arduino: Dit Motor Drive Shield L293D voor Arduino is ontworpen om motorregeling aan uw projecten toe te voegen. Het biedt twee interfaces voor 5V servo's, aangesloten op de hoge-resolutie dedicated timer van Arduino, wat precise servo-werking mogelijk maakt. Compatibel met Arduino Uno-borden (bord niet inbegrepen). Bevat twee 5V servo-interfaces voor uw projectbehoeften. Als uw project motoren of servo's moet aansturen, handelt dit schild de stroom af en biedt een nette interface, zodat u geen driver uit discrete componenten hoeft te bouwen.
- 3mm Diffuse LED (Wit): Standaard hoogwaardige witte LED van 3 mm in een wit diffuus / matte behuizing. Geschikt voor stroom- en statusindicatoren, achtergrondverlichting, berichtendisplays, 3D-kubussen, enz. De prijs is gebaseerd op één (1) LED. Hoe meer u koopt, hoe lager de kosten per stuk. Deze LEDs zijn ideaal voor het testen van uw nieuwe uitgangen. De diffuse behuizing geeft een zachte gloed en de prijs daalt met de hoeveelheid, zodat u genoeg kunt kopen voor een heel project.
- Zwart, 28- pins ZIF-voet: Deze ZIF-sockets (Zero Insertion Force) hebben een hendel die het ZIF-mechanisme activeert om schade aan componenten te verminderen. Deze 2.54 mm DIP-sockets bieden een uitstekende test- en burn-in-interface voor dual in-line pakketen met een pitch van 2.54 mm en een behuizingsbreedte van 0.3. Als u tijdens het prototypen 74HC595-chips of andere DIP IC's vervangt, voorkomt een ZIF-socket verbogen pinnen en maakt testen gemakkelijker.
Welke moet u gebruiken?
Het beste voor
- Projecten die veel uitgangen (LED's, relais) nodig hebben met een beperkt budget
- Snelle update-eisen zoals multiplexen of PWM
- Direct aansturen van laagstroombelastingen zonder extra transistors
Niet geschikt voor
- Projecten die ingangen moeten uitlezen (kies I2C-expander)
- Wanneer u microcontroller-pinnen tot slechts twee moet beperken
- Hoogstroombelastingen zonder extra drivers






