tech-support

-20%

*/ ?>

Početnik si s Croduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala e-radionice na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Croduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.

Uvod

  Kod nešto složenijih projekata može se dogoditi da vaš Croduino nema dovoljan broj digitalnih ulaza i izlaza. Ne očajavajte! Imamo rješenje za vas. Radi se o breakout modulu koji sadrži MCP23017 IC te vam omogućuje spajanje dodatnih šesnaest digitalnih ulaza/izlaza. Postoje dva tipa ovog chipa, a mi koristimo varijantu sa I2C komunikacijom.  
 
Karakteristike: Napon napajanja: 1.8V - 5.5V Maksimalna struja po pinu: 25mA Broj digitalnih ulaza/izlaza: 16 Maksimalna brzina komunikacije: 1.7MHz Komunikacijsko sučelje: I2C Dimenzije: 35 mm x 24 mm  

Kako radi?

  Uz sklopovlje za komunikaciju ovaj chip kojega koristimo sadrži dva 8-bitna GPIO (general purpose input output) modula čime ukupno dobivamo 16 ulaza/izlaza. Za svakog od njih možemo odrediti je li ulaz ili izlaz. Ako GPIO pin radi kao digitalni ulaz onda njegovu funkcionalnost možemo jednostavno opisati kao komparator napona. Ovisno o napajanju IC-a kontroler određuje koje područje napona se smatra niskom, a koje visokom razinom. Kada GPIO koristimo kao ulaz mi zapravo želimo odrediti je li neki fizikalni (analogni signal) iznad neke razine napona pri čemu tome signalu pridjeljujemo vrijednost „HIGH“ ili je ispod neke razine pa mu dodjeljujemo vrijednost „LOW“. Često signali za koje želimo odrediti jesu li „HIGH“ ili „LOW“ nisu konstantni nego im se napon može mijenjati. Zbog toga ovaj IC koristi takozvani Schmitt trigger. Na ovaj način se osigurava sigurnosna zona u koju mjereni signal može ući bez da ga kontroler prepozna kao krivu vrijednost.  
  Ukoliko smo odredili za neki GPIO pin da radi kao digitalni izlaz imamo jednostavniju situaciju. Preko komunikacije dobivamo informaciju o tome treba li pin postaviti „LOW“ ili „HIGH“. Ako smo primili „LOW“ izlaz se spaja na ground, a ako smo primili „HIGH“ izlaz se spaja na napon napajanja. GPIO ulazi imaju ugrađeni pull-up otpornik pa na njih možemo jednostavno dodati tipkala i prekidače bez dodatnog sklopovlja. Ovaj IC ima još jednu zanimljivu funkcionalnost-hardverski prekid (interrupt). Može se isprogramirati da breakout postavi interrupt ukoliko dođe do promjene na jednom ili drugom GPIO modulu pa sukladno tome na pločici imamo dva pina označena sa INTA i INTB.  

Kako povezati?

  Priključnice: gnd: ground VCC: napajanje 1.8V - 5.5V SDA: serial data I2C SCL: serial clock A0 do A7: I/O B8 do B15: I/O  
Povezivanje sa Croduinom jednostavno je, a potrebne su vam samo četiri žice od kojih dvije za napajanje i dvije za komunikaciju (SDA i SCL). Imamo rješenje za vas i u slučaju da koristite vrlo velik broj ulaza/izlaza. Na pločici možete vidjeti tri adresna jumpera pomoću kojih se određuje adresa modula na I2C komunikaciji. Svaki jumper određuje jedan adresni bit i može imati vrijednost '0' ili '1' što znači da imate na raspolaganju osam kombinacija pa možete spojiti osam ovakvih modula na jedan Croduino što vam daje ukupno 128 novih digitalnih ulaza/izlaza koje koristite na isti način kao i normalne digitalne ulaze/izlaze na Croduinu.  
 

Arduino kod

  Za ispravno izvođenje ovog koda potrebno je skinuti biblioteku sa sljedećeg linka. U slučaju da ne znate kako instalirati biblioteku pročitajte naš tutorijal. Programski kod testira ispravnost rada modula pri čemu kao digitalni ulaz koristimo tipkalo, a kao digitalni izlaz koristimo LEDicu. NAPOMENA: potrebno je ispravno podesiti adresu modula na I2C komunikaciji. Adresu modula možete lako provjeriti tako da ga spojite na Croduino i pokrenete I2C Scanner kojega možete naći na linku.  
#include "Wire.h"
#include "Adafruit_MCP23017.h"

Adafruit_MCP23017 mcp;    //ako želite koristiti više ovih modula, ovdje ih trebate deklarirati npr. Adafruit_MCP23017 mcp1, mcp2;
  
void setup() {  
  mcp.begin(27);      // treba upisati adresu modula na I2C komunikaciji

  mcp.pinMode(1, OUTPUT);
  mcp.pinMode(13, INPUT);
  mcp.pullUp(13, HIGH);  //omogućujemo pull-up otpornik jer koristimo tipkalo
}

void loop() {
  if(!mcp.digitalRead(13)){       //kada stisnemo tipkalo, digitalni ulaz će očitati LOW, a kada je otpušteno čitati će HIGH zbog pull-up otpornika
    mcp.digitalWrite(1, HIGH);
  }else{
    mcp.digitalWrite(1, LOW);
  }
}

Kada ste otvorili Croduino set za početnike, pronašli ste među mnogim dobivenim komponentama i jedan MOSFET tranzistor. Zasigurno ste se pitali što je to MOSFET i čemu on služi? U ovom članku detaljnije ćemo objasniti što je MOSFET, njegove osnovne karakteristike i princip njegovog rada kako biste što bolje razumjeli kako ova komponenta funkcionira i za što se može koristiti.

Informacija o iznosu struje trošila korisna je u mnogim projektima zbog čega smo odlučili projektirati ovaj modul. Uobičajeni mikrokontroleri na svojim analognim ulazima ne mogu mjeriti struje jakosti iznad nekoliko desetaka miliampera. Taj problem lako možemo riješiti korištenjem ovog modula koji omogućava mjerenje struje u opsegu od ±3.2A.