Vizitator arno0548 Postat Septembrie 15, 2015 Partajează Postat Septembrie 15, 2015 (editat) Salutare, Incerc sa controlez o placa cu 4 relee (http://www.robotshop.com/en/4-channel-5v-relay-module.html) folosind un PCF8575 http://www.robofun.ro/PCF8575_I2C?search=PCF8575 Am reusit sa conectez PCF8575 la Arduino (Uno) folosind busul I2C, astfel SDA > A4 SCL >A5 Vcc>5V Ground>Ground Intre SDA/SCL si Vcc am folosit rezistori de 10k Am setat porturile de pe PCF ca output, am conectat placa cu relee, la PCF astfel: Vcc>Vcc Ground>Ground Chanel 1-4> PCF port 1-4 folosind libraria Wire.h am scris void setup(){ Wire.begin();Wire.beginTransmission(0x20);Wire.write(B00000000);Wire.write(B00000000);Wire.endTransmission();} void loop(){Wire.beginTransmission(0x20);Wire.write(B00000000);Wire.write(B00000000);Wire.endTransmission();delay(1000); Wire.beginTransmission(0x20);Wire.write(B11111111);Wire.write(B11111111);Wire.endTransmission(); delay(1000);} Masurand cu un voltmetru intre ground si PCF port 1, inregistrez alternativ 0V si 4.95V Cu totate acestea, releele nu misca... Ma poate ajuta cineva cu o sugestie? Multumesc! Editat Septembrie 15, 2015 de arno0548 Link spre comentariu
lutza2 Postat Septembrie 15, 2015 Partajează Postat Septembrie 15, 2015 (editat) placa are si status led pentru relee. Ledurile alea fac ceva ? Parca sunt si niste tranzistori pe placa cu relee. Conecteaza si Vcc la placa cu relee. Poate dai doar in baza 0-5V. Editat Septembrie 15, 2015 de lutza2 Link spre comentariu
Vizitator arno0548 Postat Septembrie 15, 2015 Partajează Postat Septembrie 15, 2015 (editat) Ledurile nu fac nimic.... Placa are leduri pentru fiecare releu, care se aprinde cand releul este inchis. Am conectat Vcc de la placa la Vcc de la arduino. Am conectat placa direct la arduino si am folosit pinul 2 (Arduino) > Channel 1 de pe placa. Asa a functionat. Am pus pinul pe HIGH, releul s-a inchis (aprins led, facut click), l-am pus pe low, s-a deschis (stins led, facut click) Editat Septembrie 15, 2015 de arno0548 Link spre comentariu
deejay2k1 Postat Septembrie 15, 2015 Partajează Postat Septembrie 15, 2015 http://www.ti.com/lit/ds/symlink/pcf8575.pdf pagina 16 adresa de scriere trebuie sa fie 0x40 (64 zecimal) pentru A0, A1, A2 = 0 vezi exemplul de Mbed din linkul tau (partea de adresare) Link spre comentariu
Vizitator arno0548 Postat Septembrie 15, 2015 Partajează Postat Septembrie 15, 2015 (editat) Adresa este pe 7 biti |0100|A0|A1|A2| 0100000 =0x20 = 32 functia Wire.beginTransmission returneaza 0 (success) la fel si celelalte functii Wire Editat Septembrie 15, 2015 de arno0548 Link spre comentariu
deejay2k1 Postat Septembrie 15, 2015 Partajează Postat Septembrie 15, 2015 eu m-am jucat cu PCF8574A adineauri, pare asemenator. incearca i2c scanner, vezi ce adrese ai conectate #include <Wire.h>void setup(){ Wire.begin(); Serial.begin(9600); Serial.println("nI2C Scanner");}void loop(){ byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address < 127; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Unknow error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices foundn"); else Serial.println("donen"); delay(5000); // wait 5 seconds for next scan} Link spre comentariu
Vizitator arno0548 Postat Septembrie 15, 2015 Partajează Postat Septembrie 15, 2015 I2C Scanner Scanning... I2C device found at address 0x20 ! done Link spre comentariu
Vizitator arno0548 Postat Septembrie 16, 2015 Partajează Postat Septembrie 16, 2015 Se pare problema e mai "adanca"... Initial am masurat tensiunea intre PCF8575 port 1 (setat pe HIGH) si ground fara a avea conectata placa cu relee.. asa am citit 4.9V. Dupa ce am conectat placa, Channel 1> PCF8575 Port 1, am pus port 1 pe HIGH, am citit intre Channel 1 si ground.. 0.875V.. total insuficient pentru a "impresiona" tranzistorul sa inchida releul... Problema se pare ca e circuitul de pe placa, care, conform schemei (http://www.robotshop.com/media/files/pdf/schematic-shd020.pdf) mai are ceva sarcini inainte de transistor (dintre care un rezistor de 10k.). In plus, PCF8575 este in esenta un IC cu colectorul in gol (deschis) si, se pare nu are cum sa conduca curent suficient... Link spre comentariu
nico_2010 Postat Septembrie 17, 2015 Partajează Postat Septembrie 17, 2015 Problema este ca placa cu PCF8575 nu are conectate rezistente de pull-up pe niciunul din porturile I/O. Monteaza rezzistente de 100k intre iesirile ce merg la tranzistoare si +5V si apoi reverifica functionarea montajului. Link spre comentariu
UDAR Postat Septembrie 17, 2015 Partajează Postat Septembrie 17, 2015 Dacă schema plăcii cu relee este cea postată , 100kΩ nu rezolvă nimic . După cum se vede din schema internă a lui PCF8575 există deja un pull up de 100µA ( 50kΩ) . Ca să asigurăm 1mA în baza tranzistorului (Depinde de sensibilitatea releelor si de beta tranzistorului . 1mA este , cred , acoperitor.) trebuie să avem mai puțin de 3,3 kΩ. Link spre comentariu
nico_2010 Postat Septembrie 17, 2015 Partajează Postat Septembrie 17, 2015 Cand i-am sugerat sa monteze rezistentele cu pricina am avut in vedere schema de aplicatie din foaia de catalog. Link spre comentariu
Vizitator arno0548 Postat Septembrie 18, 2015 Partajează Postat Septembrie 18, 2015 Solved, Am folosit un tranzistor PNP, emitter la 5V, baza la iesirea din PCF8575 printr-un rezistor de 10k, iar colectorul la releu (canal 1). Astfel cand iesirea PCF este low (0), releul se inchide (aprins), iar cand PCF este HIGH (1), releul se deschide (stins). (Rezolvarea a fost sugerata de Paul__B pe forumul arduino.cc) Link spre comentariu
one Postat Octombrie 12, 2015 Partajează Postat Octombrie 12, 2015 (editat) Probabil din cauza ca led-urile sunt conectate la intrarea in modulul relee, dupa cum se vede in poza, si nu in paralel cu bobinele releelor. Aceasta face ca iesirea PCF sa fie partial scurtcircuitata spre masa. Scoate led-urile si placa va functiona normal. Scuzati, acum am vazut data ultimului post. Din pacate sectiunile de electronica nu sunt atat de active precum cele de la bodega. Editat Octombrie 12, 2015 de one Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum