Din punctul meu de vedere soluția cea mai la îndemâna în momentul în care ramai fără porturi libere este un I2C expander. Acesta funcționează cu orice placa de dezvoltare care poate comunica pe I2C incluzând aici Arduino sau RaspberyPI.conectat

 

1.Schema electrică:

Legarea integratului MCP23017 la placa de dezvoltare Arduino sau Raspberry Pi este destul de facila, după cum se poate vedea și în exemplele de mai jos.

cablaj_bb

 

Functie Arduino Raspberry MCP23017
SCL A5 3 12
SDA A4 2 13
VDD +5v +3,3V 9
RESET +5v +3,3V 18
GND GND GND 10
GPA0-7 21-18
GPB0-7 1-8

 

2.Programare:

Aplicația pe care o descriu eu mai jos realizează doua lucruri:

  • aprinde/stinge un led la interval de 100ms
  • la apăsarea unui buton aprinde sau stinge un al doilea led

Am realizat aceiași aplicație pentru Arduino cât și pentru Raspberry Pi pentru a va putea face o idee asupra diferențelor.

2.1 Arduino:

Pentru a folosi acest chip cu arduino va recomand sa instalați aceasta librarie pentru MCP23017 Librăria este realizata de Adafruit iar din ce am putut observa este una dintre cele mai complete/ușor de folosit.

 

2.2 Raspberry:

Mai întâi placa RPi trebuie setata pentru a putea comunica pe I2C. Pentru acest lucru trebuie sa încărcați modulul I2C în kernel.

A. In funcție de distribuția pe care o folosiți v-a trebuii sa editați fișierul raspi-blacklist, comentând cele 2 linii.conform cu imaginea de mai jos. Daca fișierul nu exista sau este gol treceți mai departe. Daca exista executați următoarele comenzi:

In final  fișierul trebuie sa arate astfel:

i2c_blacklist

B. Acum trebuie sa încărcam modulele I2C pentru kernelul raspberry. Pentru acest lucru trebuie sa editam fisierul /etc/modules

iar la sfârșitul acestuia adaugam 2 linii

conform cu imaginea de mai jos:

i2c_modules

C. Pentru a putea folosi în sfârșit modulul I2C trebuie sa instalam utilitarele I2C-tools si librăria python pentru I2C.

D. Acum conectați RPi la integratul MCP23017 și rulați următoarea comanda:

Daca totul este OK ar trebuii sa vedeți adresa dispozitivului în tabelul afișat.

i2c-tabel

 

E. In terminal lansati urmatoarea comanda

si incepeti sa scrieti programul

P.S. Din pacate in momentul in care scriu acest articol nu mi-a venit  noua placa Raspbery B+ ia programul de mai sus nu a fost testat

 

3.Asa arata I2C expander-ul meu:

Screenshot from 2014-09-20 19:46:23

Fisierele eagle:

 

Spor la treaba!

I2C expander
Etichetat pe:        

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.