zahariaiulian Postat Ianuarie 18, 2016 Autor Partajează Postat Ianuarie 18, 2016 @zahariaiulian: n-ai inteles, nu tu trebuie sa faci ce vrea releul, ci releul trebuie sa faca ce vrei tu. Cu alte cuvinte, desi ai dreptate referitor la semnificatia pinilor, nu esti obligat sa folosesti releul asa. Daca tie iti place mai mult sa opresti releul cand faci pinul LOW, nu e nici o problema *) daca ignori semnificatia pinilor si conectezi releul sa functioneze cum iti trebuie tie. Tu esti sefu'. *) Singura problema ar putea fi consumul de curent mai mare, daca inversand logica releul va fi alimentat mai mult timp. Stiu foarte bine ce este un releu si ce face. De ce la un sistem de alarma ( detectorul de miscare IR) ai pe el NC / C / NO sau control acces folosesti releul cand nu este alimentat. Iti zic eu.... din motive de securitate. Poate se "buleste bobina" si iti deschide releul. Si, DA, ai dreptate il poti folosi cum vrei. Dar eu o tin pe a mea ) Link spre comentariu
zahariaiulian Postat Ianuarie 21, 2016 Autor Partajează Postat Ianuarie 21, 2016 Am o problema. Cand trec null sau faza prin nc si c pe placa de relee imi arata numai prosti pe display. La fel face si atunci cand ii dau alimentare de pe sursa de 12v2ah. Daca il las pe usb alimentat merge bine. Nu inteleg de ce imi face probleme daca este alimentat pe usb si ii pun pe releu 220v. Link spre comentariu
nico_2010 Postat Ianuarie 21, 2016 Partajează Postat Ianuarie 21, 2016 Poate o fotografie cu montajul/cablajul ar putea conduce la sugestii pertinente. Si ca idee: cand bobina unui releu se "buleste" contactele raman "inghetate in nemurire" pe pozitia lor de repaus (bobina nealimentata). Link spre comentariu
zahariaiulian Postat Ianuarie 23, 2016 Autor Partajează Postat Ianuarie 23, 2016 Am facut cateva teste si am observat daca scot sursa de alimentare ( se afla intr-o cutie metalica cu arduino ) din cutie nu imi mai afecteaza display-ul. Nu mai apar caractere aiurea. Dar softul lucreaza chiar daca imi apar astea pe display. Lucreaza cum trebuie. Link spre comentariu
zahariaiulian Postat Ianuarie 25, 2016 Autor Partajează Postat Ianuarie 25, 2016 (editat) Poza schema display, exact asa l-am montat.Ce mai am in plus este pe pinul 10 un buzzer si pe 2 senzorul de temperatura. Aici aveti codul: // include the library code:#include <LiquidCrystal.h>#include <OneWire.h>#define TEMP_ACTIVARE_POMPA 35 /*pragul la care activezi pompa*/boolean bNevoieSaPompez = false; //memoreaza starea pompei int DS18S20_Pin = 6; //DS18S20 Signal pin on digital 2int P1 = 7; // pompa1int P2 = 8; // pompa2int P3 = 9; // backupint buzzer = 10; // buzzer //Temperature chip i/oOneWire ds(DS18S20_Pin); // on digital pin 2// initialize the library with the numbers of the interface pinsLiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() { Serial.begin(9600); pinMode(P1, OUTPUT); pinMode(P2, OUTPUT); pinMode(P3, OUTPUT); pinMode(buzzer, OUTPUT); // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. }void loop() { float temperature = getTemp(); Serial.println(temperature); lcd.setCursor(0,0);lcd.print("Temp:");lcd.print(temperature);lcd.setCursor(0,1);lcd.print("P1:");lcd.setCursor(6,1);lcd.print("P2:");lcd.setCursor(12,1);lcd.print("BK:"); //////////////////////////////////////////////// Pompa 1 ////////////////////////////////////////////////////////////// /* Pompa 1 porneste la 60 grade si se opreste la 55 grade */ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////if (temperature > 60 ) // Activeaza pompa 1 peste temperatura de 60 grade { digitalWrite(P1, LOW); lcd.setCursor(3,1); lcd.print("1"); } if (temperature < 55 ) // Dezactiveaza pompa 1 sub temperatura de 55 grade { lcd.setCursor(3,1); lcd.print("0"); digitalWrite(P1, HIGH); }//-----------------------------------------------Sfarsit cod-----------------------------------------------------------////////////////////////////////////////////////// Pompa 2 ///////////////////////////////////////////////////////////////if((temperature < TEMP_ACTIVARE_POMPA) && (bNevoieSaPompez == false)){ bNevoieSaPompez = true;}if ((temperature >= 35) && bNevoieSaPompez){ digitalWrite(P2, LOW); // Activeaza pompa 2 lcd.setCursor(9,1); lcd.print("1");}if (temperature >= 65 ) { digitalWrite(P2, HIGH); // Opreste pompa 2 lcd.setCursor(9,1); lcd.print("0"); bNevoieSaPompez = false; //deactiveaza pompa pana scade temperatura suficient.} if (temperature < 35){ digitalWrite(P2, HIGH); // Opreste lcd.setCursor(9,1); lcd.print("0");}//-----------------------------------------------Sfarsit cod-----------------------------------------------------------////////////////////////////////////////////////// backup ///////////////////////////////////////////////////////////////if (temperature > 0 ) { digitalWrite(P3, LOW); // Activeaza backup lcd.setCursor(15,1); lcd.print("1"); }//-----------------------------------------------Sfarsit cod-----------------------------------------------------------////Aici introducem codul pentru buzzer if (temperature >95 && temperature <100) // Wen a frequency sound { digitalWrite (buzzer, HIGH) ;// send voice delay (400) ;// Delay 1ms digitalWrite (buzzer, LOW) ;// do not send voice delay (2000) ;// delay ms } if (temperature >101) // Wen a frequency sound { digitalWrite (buzzer, HIGH) ;// send voice delay (200) ;// Delay 1ms digitalWrite (buzzer, LOW) ;// do not send voice delay (200) ;// delay ms } } float getTemp(){ //returns the temperature from one DS18S20 in DEG Celsius byte data[12]; byte addr[8]; if ( !ds.search(addr)) { //no more sensors on chain, reset search ds.reset_search(); return -1000; } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return -1000; } if ( addr[0] != 0x10 && addr[0] != 0x28) { Serial.print("Device is not recognized"); return -1000; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end byte present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for (int i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } ds.reset_search(); byte MSB = data[1]; byte LSB = data[0]; float tempRead = ((MSB << 8) | LSB); //using two's compliment float TemperatureSum = tempRead / 16; return TemperatureSum;} Problema asta ma depaseste. Daca aprind o lampa ( veioza ) langa arduino o ia razna displayul. Daca pornesc uscatorul de par l-a fel face..... Nu inteleg ce treaba are chestia asta..... Am facut fel si fel de teste. Nu stiu ce sa ii fac! Editat Ianuarie 25, 2016 de zahariaiulian Link spre comentariu
bata01yu Postat Ianuarie 25, 2016 Partajează Postat Ianuarie 25, 2016 Banuiesc ca este din cauza interferentelor, sau a bruiajului dat de campuri electrice ce se afla in apropiere. Daca gresec scuze. Link spre comentariu
zahariaiulian Postat Ianuarie 25, 2016 Autor Partajează Postat Ianuarie 25, 2016 Banuiesc ca este din cauza interferentelor, sau a bruiajului dat de campuri electrice ce se afla in apropiere. Daca gresec scuze. Cum rezolv asta ? Link spre comentariu
bata01yu Postat Ianuarie 25, 2016 Partajează Postat Ianuarie 25, 2016 Prin ecranare. Nu stiu ce ai tu acolo dar incearca sa il bagi intr-o cutie izolata pe exterior sau pe interior cu o folie de staniol, sper sa nu se propage prin suprafata displaiului bruiajul, dar o incercarenu strica. Link spre comentariu
Florian Ciobanu Postat Ianuarie 25, 2016 Partajează Postat Ianuarie 25, 2016 incearca si cu un cond de 0,1 micro direct pe alimentarea lcd-ului Link spre comentariu
nico_2010 Postat Ianuarie 26, 2016 Partajează Postat Ianuarie 26, 2016 Poate decuplezi alimentarea de pe breadboard cu un condensator de 10uF ... 100uF si unul de 100nF. Alimentarea ansamblului cu ce o faci? Link spre comentariu
zahariaiulian Postat Ianuarie 27, 2016 Autor Partajează Postat Ianuarie 27, 2016 incearca si cu un cond de 0,1 micro direct pe alimentarea lcd-ului Degeaba. Poate decuplezi alimentarea de pe breadboard cu un condensator de 10uF ... 100uF si unul de 100nF. Alimentarea ansamblului cu ce o faci? Poti fii mai explicit? Alimentearea o dau dintr-o sursa sau din baterie si cum aprind o lampa langa imi crapa display-ul. Link spre comentariu
nico_2010 Postat Ianuarie 28, 2016 Partajează Postat Ianuarie 28, 2016 da, as putea fi mai explicit. Pe breadboard, intre barele de + si - montezi in paralel un condensator de 100nf si unul de 100uF. Mai poti monta o bobina de 100uH intre sursa de alimentare si breadboard, flancata de 2 condensatori de 10uF (asta se constituie intr-un filtru trece-jos) si ar mai fi si alte solutii. Aplica una din cele doua de mai sus si spune ce rezultate ai. 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