Koda: |
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Digitalni pini na keterega smo vezali LCD const int inPin = 0; // A0 je povezan senzor void setup() { lcd.begin(16,2); } void loop() { int value = analogRead(inPin); // Bere vrednost sezorja lcd.setCursor(0,1); float millivolts = (value / 1024.0) * 5000; float celsius = (millivolts-500) / 10; lcd.clear(); lcd.setCursor(0,0); lcd.print(celsius); lcd.print(" STOPINJ JE"); lcd.setCursor(0,1); lcd.print("V GROW BOXU"); delay(5000); } |
Koda: |
//Library
#include <LiquidCrystal.h> //Constant output/input pins const int pinDig=13,pinRed=10,pinBlue=9,pinGreen=8,inPin=0,rs=12,re=11,db4=5,db5=4,db6=3,db7=2; const int buttonPin=1; //State int buttonState = 0; const int MAX=33,MIN=24;//Min and Max constant for temperature LiquidCrystal lcd(rs,re,db4,db5,db6,db7); //LCD connection void startUP(char* top,char* bottom, int seconds){ lcd.setCursor(0,0); lcd.print(top); lcd.setCursor(0,1); lcd.print(bottom); delay(seconds*1000); } void setup() { //Input/output pins lcd.begin(16,2); pinMode(pinDig,OUTPUT); pinMode(pinGreen,OUTPUT); pinMode(pinRed,OUTPUT); pinMode(pinBlue,OUTPUT); pinMode(buttonPin,INPUT); startUP(" GROW BOX ALPHA","START UP SEQUENCE",2); } //Function for temperature reading float tempC() { int value = analogRead(inPin); lcd.setCursor(0,1); float millivolts = (value / 1024.0) * 5000; float celsius = (millivolts-500) / 10; return celsius; } void loop() { if(digitalRead(buttonPin)==1){ //Switch state on button press if(buttonState==1) buttonState = 0; else buttonState = 1; } float temp = tempC(); lcd.clear(); if(buttonState==0){ // Show temp. readings if state=0 lcd.setCursor(0,0); lcd.print(temp); lcd.print("'C"); lcd.setCursor(0,1); //TODO:: Add heather code!! if(temp > MAX){ //ventilation ON(untill further change) and RGB led glows RED digitalWrite(pinDig,HIGH); digitalWrite(pinRed,1); digitalWrite(pinBlue,0); digitalWrite(pinGreen,0); lcd.print("TEMP:HIGH"); } else if(temp < MIN){ //ventilation OFF(untill further change) and RGB led glows BLUE and heather turns on untill min temp. is reached digitalWrite(pinDig,LOW); digitalWrite(pinBlue,1); digitalWrite(pinRed,0); digitalWrite(pinGreen,0); lcd.print("TEMP:LOW"); } else{ //RGB led glows GREEN and heather turns off digitalWrite(pinGreen,1); digitalWrite(pinBlue,0); digitalWrite(pinRed,0); lcd.print("TEMP:NORM"); } } //Add humidity sensor code else{ //If state is 1 show humidity readings on LCD lcd.setCursor(0,0); lcd.print("HUMIDITY"); lcd.setCursor(0,1); lcd.print("Sensor???"); } delay(500); } |
Peter123 je napisal/a: |
Sam sem realiziral zadevo malo drugače.
Dodal sem še krmiljenje gretja, ko so luči ugasnjene se lahko temperatura tudi spusti. Opcija različne temperature v temi in pod prižgano lučjo. Dodal sem tudi avtomatsko zalivanje: -zajem vlage substrata -krmiljenje motorčkov oziroma ventilov. |
thetilko je napisal/a: |
Samo iz radovednosti me zanima, kako se bo kontrolirala kolicina pretocene vode pri zalivanju? |
MadMax je napisal/a: |
Sicer offtopic, a...
Meni se zdi tole enkratno zastavljena tema, pohvalno! Predlagam pa, da se še slike postavijo direkt na forum, sicer bi znale iz slikomatika izginiti, s tem pa bi zanamcem tudi tema izgubila na vrednosti. |
igo je napisal/a: |
Umakni tipko s TX. RX in TX pelji na čip MAX485 oziroma pusti prostor zanj. Pa na jumper in 120 ohm terminacijski upor ne pozabi.
SCL, SDA in še dva pina si rezerviraj za razširitev števila izhodov (74HC595) in vhodov (74HC165). Si šele na začetku in si že na tesnem s pini. PWM ~ pine lahko koristneje uporabiš, zato LCD priklopi na manj pomembne pine. Zelena barva ni na PWM pinu? Zaenkrat imaš eno RGB ledico. Ko jih boš imel več, bo moral imeti vsak kanal svoj močnostni tranzistor MosFet ali Darlington z vsaj nekaj A tokovne zmogljivosti. Tudi analognih vhodov ne troši po nepotrebnem. Zakaj je pod TMP senzorjem en 1k upor med GND in LCD ter tisto desno škatlo in Npn tranzistorjem? Uporabi dva napajalnika. Enega malega 5V/250mA za pamet, vhode, male izhode (baze tranzistorjev,...) in osvetlitev LCD, močnostni napajalnik boš pa kupil, ko boš seštel tokove vseh močnostnih komponent (črpalke, ventilatorji, luči, ...). Prednost ima 24 V oziroma najprej primerjaj cene 12 V in 24 V močnostnih komponent. (-) sponki iz obeh napajalnikov združi v ozemljeni GND zbiralki in od tam potem vlečeš (-). Ne delaj PWM anten. (+) do porabnika in (-) od porabnika vodi po kablu od zvočnikov, ki ga pri napeljevanju sukaš okrog vzdolžne osi. Tako bo nastala "parica", ki seva najmanj motenj v okolico. Tudi za vhodne in izhodne signale naj bodo površine zank čim manjše. Spet je najboljša parica ali tanek kabel. Ena žila tja, povratna pa pol metra stran, je recept za glavobol. Nasploh naj ima vsak (+) iz tiskanine čim bolj ob sebi svoj povratni (-) in obratno, da se ne tvorijo zanke velikim presekom. |