Raspberry Pi poort Expander (2 / 3 stap)

Stap 2: Verbinding tussen Hard - en Software


Te praten via SPI hebben wij aan opstelling de framboos om SPI communicatie. De eenvoudigste manier om dit te doen is om de SPI via aan raspi-config.

Hoe we praten met de MCP23S17? Via SPI, maar wat dat gemiddelde dosis.

SPI is een mededeling van de meester-slaaf-bus. Bus betekent, dat we zoveel apparaten kunt aansluiten, zoals we, afhankelijk van de mogelijkheden van onze fiches willen en hoe veel chipselect onze Raad van bestuur heeft. Met de framboos die kreeg 2 chipselect kunnen we twee keer 8 chips gebruiken. Lees dit artikelvoor meer informatie.

Al met al moeten we binaire code te communiceren met onze apparaten te sturen. De eerste byte die we moeten sturen is altijd onze apparaat opcode waarin het hardwareadres van onze apparaat (0b0100) en het adres van de chip die wij toegang (0b000 en 0b001) en een beetje lezen/schrijven (0b00/0b01 willen). We moeten om één byte uit dit spul, gebruik een bitwise of de exploitant.

In javascript kunnen we dit met deze code:

 var hard_addr = 0b01000000; // we appended 4 zeros to avoid a bit shift var chip_addr = 0b0010; // 0b0000 we also appended one zero to avoid a bit shift var read_code = 0b01; // 0b00 // A = hard_addr, B = chip_addr, C = read_code // AAAABBBC var device_opcode = hard_addr | chip_addr | read_code; // 0b01000011 

De tweede byte is de opdracht die wij willen de slaaf te doen en de derde byte is de waarde die we schrijven, willen als we willen schrijven. Als we willen lezen gewoon we 0x00 omdat deze extra byte betekent een andere tik en tijd voor de slaaf uit te voeren en te beantwoorden. Er zijn veel verschillende opdrachten die u ook in deze pdf zien kunt. Omdat de chip aankan input en output op eigen, toewijzen we gewoon alle van hen als output.

Voor de communicatie gebruik ik de mcp23s17 bibliotheek voor nodejs. Hier is een kort voorbeeld te verbinden, lezen en schrijven van bepaalde gegevens:

 // load the library MCPLib = require('mcp23s17'); // create new instance width device and chip_adress // needed default settings are set (more options will follow) mcp_1 = new MCPLib.MCP23S17( '/dev/spidev0.0', 0 ); // connect decive mcp_1.connect(); var status = 0b10000000; setInterval( function(){ if( status == 0b00000000 ){ status = 0b10000000; } else { status = 0b00000000; } mcp_1.write( 'B', status ); mcp_1.read( 'B', function( s ){ console.log( s ); }); }, 500); 

Gerelateerde Artikelen

LinkIt één – MCP23017 I2C poort Expander

LinkIt één – MCP23017 I2C poort Expander

De MCP23017-chip is een ingangs- en uitgangssignaal expander, die gebruik maakt van de I2C communicatieprotocol. Je kunt aansluiten op uw LinkIt One met behulp van slechts twee pinnen (SDA, SLC) en 16 digitale I/O poorten. Bovendien, je kunt verbindi
Raspberry Pi I2C (Python)

Raspberry Pi I2C (Python)

In dit instructable, zal ik uitleggen hoe gebruik I2C op de Pi, met de voorbeelden van de CMPS03 kompas module en ultrasone SRF08 bereik, met behulp van python. Recht door het installeren van de OS, om ervoor te zorgen dat de afhankelijkheden en alle
PICAXE Raspberry Pi ADC

PICAXE Raspberry Pi ADC

In dit instructable ik zal u tonen hoe het gebruik van een goedkoop PICAXE micro-controller als een meerdere kanaals analoog naar digitaal converter. We zullen I2C gebruiken voor toegang tot de PICAXE, die de adc waarden in de registers van het geheu
Aansluiten van 16 x 2 LCD voor Raspberry Pi

Aansluiten van 16 x 2 LCD voor Raspberry Pi

wanneer u klaar bent spelen met LED's, motoren, wissels enz de volgende ding om te doen is het aansluiten van een 16 × 2 alfanumerieke LCD module. De LCD-modules zijn betaalbare (minder dan $10) en moeiteloos voor aansluiting op de Raspberry Pi. Ze h
Raspberry PI auto-opstarten

Raspberry PI auto-opstarten

Ooit wilt uw Raspberry pi project heb een script die interfacet met I2C automatisch wordt gestart na een macht cyclus? Wil je de vnc-sessie te starten op kracht zo goed?Dit instructable zal tonen hoe te om een perlmanuscript die met de I2C-poorten vo
Een weerbericht-weergave met behulp van knooppunt-rood en een Raspberry-Pi

Een weerbericht-weergave met behulp van knooppunt-rood en een Raspberry-Pi

Heb je gehoord over Knooppunt-rood ? Deze grafische tool wil helpen ontwikkelaars in hun missie om de draad van het Internet van dingen met Flow gebaseerde programmering.Ik keek een paar tutorials en demonstratie video's, om te begrijpen hoe vakken b
Child's Robot kostuum met geluidseffecten, Candy Detector en meer

Child's Robot kostuum met geluidseffecten, Candy Detector en meer

ik maakte mijn dochter deze robot kostuum voor halloween. Ik was geïnspireerd door Dit Kid Robot kostuum. Ik nam mij een beetje in een andere richting en toegevoegd een paar meer nieuwigheden zoals lichten in de antennes en oren, een grote knop pad m
Interactieve omgevingslicht

Interactieve omgevingslicht

dit is mijn eerste instructable!Neem aub met mij terwijl ik strijd naar het juiste Engels schrijven. Voel je vrij om mij te corrigeren!Ik begon dit project net na de 'Laat het gloeien' competitie begonnen. Ik wou dat ik had veel meer gemaakt en afgew
Automatische multi foto nemer (Photobooth stijl)

Automatische multi foto nemer (Photobooth stijl)

dit is een tutorial over hoe te programmeren van uw DSLR-camera te nemen foto's photobooth-stijl. Het is een eenvoudige Arduino-setup die u toelaat om continu fotograferen met een vertraging van 3 seconden interval. Dit werd gebouwd voor een school e
DIY I2C LCD Display met ingangen

DIY I2C LCD Display met ingangen

De typische parallelle LCD gebruikt met een Arduino (16 x 2 of 20 x 4) heeft 16 pinnen. Slechts 6 I/O pinnen zijn vereist op de Arduino, maar wat als je kon krijgen dat tot twee I/O pinnen, en nog steeds hebben die pins beschikbaar voor andere appara
Roterende Emotiphone

Roterende Emotiphone

InleidingDe roterende Emotiphone is een vintage roterende telefoon die tweets stemming emoticons. Het heeft een vooraf gedefinieerde lijst met 10 emoticons, elk toegewezen aan een cijfer, zodat wanneer u gelukkig / verdrietig / dronken / etc. bent, u
The Drone Pi

The Drone Pi

OPMERKING: DIT INSTRUCTABLE WORDT GESCHREVENDit project is een quadcopter aangedreven door een Multiwii en gecontroleerd met een Raspberry Pi 2 B. Deze quadcopter heeft een bijzonderheid, omdat hij met behulp van 2 differents controller en hij zou pi
Meer LCD s samen te werken...

Meer LCD s samen te werken...

Ooit had dat probleem dat u plaatsen zo veel info op een LCD-scherm wilde, dat het allemaal zag er volgepakt samen?U kunt proberen te Blader door de gegevens, het maken van verschillende pagina's op het (doordat de uitlezing wijzigen door te klikken
RGB-LED Sculpture

RGB-LED Sculpture

heb ik besloten om dit project Voer de Instructable ontwerpwedstrijd en de maken het gloed wedstrijd post. Dit is een logo dat mijn vriend voor zijn band (Rhyme & reden ontworpen). Hij gaf me de gelegenheid zijn bandlogo tot leven te brengen. Het log