Sari la conținut
ELFORUM - Forumul electronistilor

Timer 12 ore/ 21 zile pentru construirea unui incubator


pop_ady44

Postări Recomandate

Daca sunt doritori pentru timer contra cost il fac si este testat functional 

Timerul are si termostatul incorporat il el si pe vitor bercioiu lucreaza sa -i adauge higrometrul

Link spre comentariu
Vizitator iRoata

Subiectul asta ar fi fost bun la proiecte realizate; sunt o multime de informatii folositoare aici..... Pacat sa stea la servicii.....

Link spre comentariu

Sunt informatii f utile insa la cat au investit (timp, bani, munca) colegii de forum... putin probabil sa-si permita sa le dea cadou.

Si eu am incercat sa construiesc automatizarea pt asa ceva insa nu este deloc simplu, sunt multe aspecte ce tin de optimizarea numarului de pui...

Link spre comentariu
  • 2 luni mai târziu...

renvii topicul 

am o curiozitate care nu mi-o explic 

joi dupa masa (7 august 2014)a fost furtuna mare la mine si in timpu furtuni mi-o fulgerat/trasnit incubatorul 

sa dus tot ce a fost semiconductor (pic diode tranzistori afisaje lcd senzori ds18b20 senzor hidrometru )

intrebare 

el find scos din priza preventiv si avand doar bateria de 12 volti care mentinea aparatele pornite 

Cum a reusit sa-l fulgere si sa nu se distruga un radiou care era deasupra lui si era si functional si in priza 

Editat de pop_ady44
Link spre comentariu

atmega8 + DS1307 ceas + DHT22  termometru,  higrometru cu afisare pe CA56-21GWA  : Posted Image

Posted Image

Posted Image

 

Proiectul este in dezvoltare dar poate ajuta la codul pentru higrometru:

/* * PrizaPrgM8_RTC_CA56_DTH22.c * * Created: 8/6/2014 5:11:21 PM *  Author: aur * Fahrenheit (symbol °F) */ #define F_CPU 1000000#include <stdio.h>#include <stdlib.h>#include <avr/io.h>#include <avr/interrupt.h>#include <util/delay.h>// sensors#include "dht.h"#include "I2C.h"#include "ds1307.h"#define seg_A PORTB =(0<<PINB1)#define seg_B PORTB =(0<<PINB5)#define seg_C PORTC =(0<<PINC1)#define seg_D PORTD =(0<<PIND3)#define seg_E PORTD =(0<<PIND4)#define seg_F PORTB =(0<<PINB2)#define seg_G PORTC =(0<<PINC2)#define Dig1 (1<<PIND5)#define Dig2 (1<<PINB3)#define Dig3 (1<<PINB4)#define Dig4 (1<<PINC3)#define DP   (1<<PINC0)//variabile globaleint optiune, ceas, ora,minut,secunda,nr_zilei, ziua, luna, anul, data_curenta;uint8_t data;unsigned int contor, puncte;// vector pini 7segments /*char CA56[14]= {	'0',  // ANOD(+) COMUN = 0 , CATOD(-) COMUN = 1	'E',  //pinul 1  PIND4  //segment E	'D',  //pinul 2  PIND3 //segment D	'P',  //pinul 3  PINC0 //segment DP5	'C',  //pinul 4  PINC1 //segment C	'G',  //pinul 5  PINC2 //segment G	'4',  //pinul 6  PINC3 //segment Dig.4	'B',  //pinul 7  PINB5 //segment B	'3',  //pinul 8  PINB4 //segment Dig.3	'2',  //pinul 9  PINB3 //segment Dig.2	'F',  //pinul 10 PINB2 //segment F	'A',  //pinul 11 PINB1 //segment A	'1',  //pinul 12 PIND5 //segment Dig.1	'*'}; //rezervat*/				// [ASCII]  | [PORTB] | [PORTC] |[PORTD]		unsigned char ASCII_port[58][3]=				{				{0b00100110,0b00000111,0b00011000},//' ' SPACE			{0b00100000,0b00000001,0b00010000},//'!'			{0b00000000,0b00000010,0b00011000},//'°'grade°C			{0b00000100,0b00000101,0b00011000},			{0b00000000,0b00000001,0b00000000},			{0b00000000,0b00000001,0b00010000},								{0b00000000,0b00000101,0b00000000},			{0b00000110,0b00000101,0b00011000},			{0b00000100,0b00000011,0b00000000},			{0b00000100,0b00000001,0b00010000},			{0b00000010,0b00000001,0b00011000},			{0b00100000,0b00000001,0b00010000},			{0b00100000,0b00000001,0b00000000},			{0b00100110,0b00000011,0b00011000},//'-'			{0b00100110,0b00000110,0b00011000},//'.',			{0b00000000,0b00000001,0b00010000},//'/' ,						{0b00000000,0b00000100,0b00000000},//'0',			{0b00000110,0b00000100,0b00011000},//'1',			{0b00000100,0b00000010,0b00000000},//'2',			{0b00000100,0b00000000,0b00010000},//'3',			{0b00000010,0b00000000,0b00011000},//'4',			{0b00100000,0b00000000,0b00010000},//'5',			{0b00100000,0b00000000,0b00000000},//'6',			{0b00000100,0b00000100,0b00011000},//'7',			{0b00000000,0b00000000,0b00000000},//'8',			{0b00000000,0b00000000,0b00010000},//'9',						{0b00000000,0b00000101,0b00000000},//':',			{0b00000110,0b00000101,0b00011000},//';',			{0b00000100,0b00000011,0b00000000},//'<',			{0b00000100,0b00000001,0b00010000},//'=',			{0b00000010,0b00000001,0b00011000},//'>',			{0b00100000,0b00000001,0b00010000},//'?',			{0b00100000,0b00000001,0b00000000},//'@',						{0b00000000,0b00000001,0b00001000},//'A',			{0b00100010,0b00000001,0b00000000},//'B',b			{0b00100000,0b00000111,0b00000000},//'C',			{0b00000110,0b00000001,0b00000000},//'D',d			{0b00100000,0b00000011,0b00000000},//'E',			{0b00100000,0b00000011,0b00001000},//'F',			{0b00100000,0b00000101,0b00000000},//'G',			{0b00100010,0b00000001,0b00001000},//'H',h			{0b00000110,0b00000101,0b00011000},//'I',			{0b00000110,0b00000101,0b00000000},//'J',			{0b00000100,0b00000101,0b00011000},//'K',			{0b00100010,0b00000111,0b00000000},//'L',			{0b00000000,0b00000100,0b00001000},//'M'			{0b00100110,0b00000001,0b00001000},//'N',n			{0b00000000,0b00000100,0b00000000},//'O'			{0b00000000,0b00000010,0b00001000},//'P'			{0b00000000,0b00000100,0b00000000},//'Q'			{0b00100110,0b00000011,0b00001000},//'R',r			{0b00100000,0b00000000,0b00010000},//'S'			{0b00100010,0b00000011,0b00000000},//'T',t			{0b00000010,0b00000100,0b00000000},//'U'			{0b00000010,0b00000000,0b00011000},//'V'			{0b00000000,0b00000001,0b00010000},//'X			{0b00000010,0b00000000,0b00011000},//'Y			{0b00000100,0b00000110,0b00000000},//'Z		};   //////////////////////////////////////////////////////   // nr zilei , [ora start, ora stop]  // unsigned char programe[700];     ////////////////////////////////////////////////////////////void LCD7_full_digit(uint8_t cc){   				PORTD  = (cc<<PIND5); //Dig.1			PORTB  = (cc<<PINB3); //Dig.2			PORTB |= (cc<<PINB4); //Dig.3			PORTC  = (cc<<PINC3); //Dig.4			}void LCD7_print_int(int LCD7_nr ){       char nr[4] ;		uint16_t i,pct;				if(LCD7_nr >9999){LCD7_nr = 9999;}       //culegem ultima cifra	   for(i=0;i<4;i++)	   {   		   nr[i]= (LCD7_nr%10) + 16; //16 offsetul pt cifre		   LCD7_nr = LCD7_nr/10;	   }	   	   if(puncte > 50 ){pct = DP;}else{pct = 0;}	   	   //afisare				for(i=0;i< 4;i++){							if(i == 0){PORTB =(ASCII_port[(nr[3])][0]);      PORTC =(ASCII_port[(nr[3])][1])|pct;      PORTD =(ASCII_port[(nr[3])][2])|Dig1;}						if(i == 1){PORTB =(ASCII_port[(nr[2])][0])|Dig2; PORTC =(ASCII_port[(nr[2])][1])|pct;      PORTD =(ASCII_port[(nr[2])][2]);}						if(i == 2){PORTB =(ASCII_port[(nr[1])][0])|Dig3; PORTC =(ASCII_port[(nr[1])][1])|pct;      PORTD =(ASCII_port[(nr[1])][2]);}						if(i == 3){PORTB =(ASCII_port[(nr[0])][0]);      PORTC =(ASCII_port[(nr[0])][1])|Dig4|pct ; PORTD =(ASCII_port[(nr[0])][2]);}			_delay_ms(5);}			}void LCD7_print_t(float temperature)//afiseaza temperatura{       char nr[4] ;	//uint16_t i,di_1,di_23,di_4;	uint8_t i,pct;	int tC;	tC = temperature *100;	if(temperature >9999){temperature = 9999;}	//culegem ultima cifra	for(i=0;i<4;i++)	{		nr[i]= (tC%10) + 16;//offsetul pentru cifre		tC = tC/10;	}		//if(puncte > 50 ){pct = DP;}else{pct = 0;}	pct = DP;	//afisare	for(i=0;i< 4;i++){				if(i == 0){PORTB =(ASCII_port[(nr[3])][0]);      PORTC =(ASCII_port[(nr[3])][1])|pct;      PORTD =(ASCII_port[(nr[3])][2])|Dig1;}		if(i == 1){PORTB =(ASCII_port[(nr[2])][0])|Dig2; PORTC =(ASCII_port[(nr[2])][1])|pct;      PORTD =(ASCII_port[(nr[2])][2]);}		if(i == 2){PORTB =(ASCII_port[2][0])|Dig3;       PORTC =(ASCII_port[2][1])|pct;            PORTD =(ASCII_port[2][2]);}		if(i == 3){PORTB =(ASCII_port[(nr[1])][0]);      PORTC =(ASCII_port[(nr[1])][1])|Dig4|pct; PORTD =(ASCII_port[(nr[1])][2]);}		_delay_ms(5);	}}void LCD7_print_h(float humidity)//afiseaza umiditatea{       char nr[4] ;		uint8_t i,pct;		int hH;		hH = humidity*100 ;		//if(temperature >9999){temperature = 9999;}		//culegem ultima cifra		for(i=0;i<4;i++)		{			nr[i]= (hH%10) + 16;//offsetul pentru cifre			hH = hH/10;		}				//if(puncte > 50 ){pct = DP;}else{pct = 0;}		pct = DP;		//afisare umiditate 		for(i=0;i< 4;i++){						if(i == 0){PORTB =(ASCII_port[(nr[3])][0]);      PORTC =(ASCII_port[(nr[3])][1])|pct;      PORTD =(ASCII_port[(nr[3])][2])|Dig1;}			if(i == 1){PORTB =(ASCII_port[(nr[2])][0])|Dig2; PORTC =(ASCII_port[(nr[2])][1])|pct;      PORTD =(ASCII_port[(nr[2])][2]);}			if(i == 2){PORTB =(ASCII_port['H'- 32][0])|Dig3; PORTC =(ASCII_port['H'- 32][1])|pct;      PORTD =(ASCII_port['H'- 32][2]);}			if(i == 3){PORTB =(ASCII_port[(nr[1])][0]);      PORTC =(ASCII_port[(nr[1])][1])|Dig4|pct ;PORTD =(ASCII_port[(nr[1])][2]);}			_delay_ms(5);		}}			void read_ceas(){	   DS1307Read(0x00,&data);	   secunda = ((data & 0b01110000)>>4);	   secunda = secunda * 10;	   secunda = secunda + (data & 0b00001111);	   	   DS1307Read(0x01,&data);	   minut = ((data & 0b01110000)>>4);	   minut = minut*10;	   minut = minut + (data & 0b00001111);	   	   DS1307Read(0x02,&data);	   ora = ((data & 0b01110000)>>4);	   ora = ora*10;	   ora = ora + (data & 0b00001111);	   	   ceas = ora*100 + minut;}void write_ceas(int hr, int min, int sec )			{				int temp;								//Now write time back to RTC Module				temp=((sec/10)<<4)|(sec%10);				DS1307Write(0x00,temp);				temp=((min/10)<<4)|(min%10);				DS1307Write(0x01,temp);				temp=((hr/10)<<4)|(hr%10);				//temp|=0b01000000; //12 Hr Mode				//if(am_pm)				{				//	temp|=0b00100000;				}				DS1307Write(0x02,temp);							}			void read_data(){   	DS1307Read(0x03,&data);// numarul zilei	nr_zilei = (data & 0b00000111);		DS1307Read(0x04,&data);// ziua	ziua = ((data & 0b00110000)>>4);	ziua = ziua * 10;	ziua = ziua + (data & 0b00001111);		DS1307Read(0x05,&data);//luna	luna = ((data & 0b00010000)>>4);	luna = luna*10;	luna = luna + (data & 0b00001111);		DS1307Read(0x06,&data);//anul	anul = ((data & 0b11110000)>>4);	anul = anul*10;	anul = anul + (data & 0b00001111);	data_curenta = ziua*100 + luna;}void write_data(int ziua, int luna, int anul ){		int temp;		temp=((ziua/10)<<4)|(ziua%10);		DS1307Write(0x04,temp);		temp=((luna/10)<<4)|(luna%10);		DS1307Write(0x05,temp);		temp=((anul/10)<<4)|(anul%10);		DS1307Write(0x06,temp);}			int main(void){	//initializare 7segment 	DDRB = (1<<PINB1)|(1<<PINB2)|(1<<PINB3)|(1<<PINB4)|(1<<PINB5);	DDRC = (1<<PINC0)|(1<<PINC1)|(1<<PINC2)|(1<<PINC3);	DDRD = (1<<PIND2)|(1<<PIND3)|(1<<PIND4)|(1<<PIND5);	//stingem tot ecranul 	PORTB = 0xFF;	PORTC = 0xFF;	PORTD = 0xFF;		GICR = (0<<INT0)|(0<<INT1);	GIFR = (0<<INTF0)|(0<<INTF1);	    	// set prescaler to 64 and start the timer    	//TCCR0 |= (1 << CS01) | (1 << CS00);	////////////////////////////////////////////////////////////////////////////////		//Initialize I2C Bus		I2CInit();	    //Clear CH bit of RTC	    #define CH 7	   	uint8_t temp;	    DS1307Read(0x00,&temp);	// 2.CREATE Timer T0 to count seconds	//	//TIMSK |= (1 << TOIE0);	// set prescaler to 64 and start the timer	//TCCR0 |= (1 << CS01);// | (1 << CS00);    optiune = 30;	//write_ceas(15,16,10);	//write_data(25,8,14);		sei();			#if DHT_FLOAT == 0		int8_t temperature = 0;		int8_t humidity = 0;		#elif DHT_FLOAT == 1		float temperature = 0;		float humidity = 0;		#endif		read_ceas();contor = secunda*50;	read_data();	//dht22_read(&t,&hum);	    while(1)    {	      if(contor > 48*60){ read_ceas();read_data();contor = secunda*50;}	 if(contor > 50*61){contor=0;puncte = 0;}     if(puncte >100){			 //citire senzor DTH22 temperatura , humiditate	    		 //I2CInit();		 puncte = 0;}		  //timpul de citire al senzorului DHT22(pt stabilitate minim 2 secunde)		  if(contor%1000 == 0 ){ read_ceas();read_data(); if(dht_gettemperaturehumidity(&temperature, &humidity) != -1) {	 #if DHT_FLOAT == 0	 //itoa(temperature, printbuff, 10);	 #elif DHT_FLOAT == 1	 //dtostrf(temperature, 3, 3, printbuff);	 #endif	 //uart_puts("temperature: "); uart_puts(printbuff); uart_puts("C");uart_puts("rn");	 #if DHT_FLOAT == 0	 //itoa(humidity, printbuff, 10);	 #elif DHT_FLOAT == 1	// dtostrf(humidity, 3, 3, printbuff);	 #endif	 //uart_puts("humidity: "); uart_puts(printbuff); uart_puts("%RH");uart_puts("rn"); }        }	   if((contor >= 0 && contor <= 10*60 )||(contor >= 15*60 && contor <= 30*60)||(contor >= 35*60)){optiune = 10;}	   if(contor > 10*60 && contor < 15*60){optiune = 20;}	   if(contor > 30*60 && contor < 35*60){optiune = 30;}	 //  optiune = 20;	  		if(optiune == 10 ){LCD7_print_int(ceas);}		if(optiune == 20 ){LCD7_print_t(temperature);}		if(optiune == 30 ){LCD7_print_h(humidity);}		        contor = contor +1;		puncte = puncte +1;    }		}

pentru a include si rutinele download-ati tot proiectul PrizaPrgM8_RTC_CA56_DTH22.rar , dar sa vad daca il pot pune aici...

Link spre comentariu

nu sunt 1001 motorase este doar 1 singur si este in exterior intra doar axul in interior intoarcerea se face prin bascularea la 90 grade a oualor 

amestecul de aer /caldura este cel mai ok facut undeva jos si „obligat ”sa urce sus cu ventilatie 

restul este can can 

Link spre comentariu

nu vreau sa intru in polemici cu dumneavoastra dar eu am facut incubatoare 4 la numar si rata de eclozare la 2 le pot spune ca este 65-80% la restu nu pot spune pentru ca nu sunt la mine acasa 

daca cautati bine unu il gasiti pe topic fotografiat 

adevaru este ca prea multa tehnologie este ucigatoare daca se defecteaza 

ceva simplu de cele mai multe ori este extraordinar de bun 

testat si rastestat 

Link spre comentariu

cu cat e mai lunga camera si cu cat e mai inalta e mai greu de controlat termic vorbind 

eu am folosit frigidere artic de 3 dimensiuni .

cele mai bune mi se par cele cu inaltime mica sau medie (90cm-110cm parca si 120-130cm nu le stiu exact )

 )

Editat de pop_ady44
Link spre comentariu
  • 3 săptămâni mai târziu...

Am construit si eu un incubator prin 90-91. Sunt amator, nu aveam pe atunci acces la microcontrolere si altele. Tehnologia moderna ma depaseste, trebuie sa recunosc, nu stiu sa lucrez cu microcontrolere etc. Exista 2 tipuri de incubatoare: de suprafatza si de volum. Cele cu rafturi care balanseaza 90 de grade sunt de volum. La incubatoarele de volum, in ziua a 18-a ouale se scot din grile si se pun in tavi pt eclozare.

Am facut un incubator de dimensiunile unui frigider mic, numai ca l-am facut dintr-un cadru de otel cornier imbracat cu plastic PVC de 4 mm si polistiren de 50 mm. Intoarcerea rafturilor o faceam manual de cateva ori pe zi.

Daca va este de folos va spun cateva chestiuni de care m-am lovit. In primul rand rafturile trebuie sa fie robuste, un ou cantareste 60-80 g. Ventilatia trebuie sa fie lenta, viteza aerului trebuie sa fie mica dar suficienta cat sa uniformizeze temperatura. Am vazut incubatoare profesionale care aveau ventilatoare mari cat un cerc circumscris in patratul peretelui din spate cu elice cu pale late. Rezistenta era circulara in ftza acelor palete. Umiditatea am realizat-o cu o tava in care turnam apa. Nu am avut posibilitatea sa o masor. Grilele pt oua trebuie sa permita circulatia aerului lejer. Volumul de aer proaspat trebuie sa fie cat mai mare, oul cu embrion respira si emana bioxid de carbon. Atentie ouale au pe ele o ceara, ele nu trebuie spalate sau sterse inainte de a fi puse la incubat. La ovoscop (caron cu o gaura) trebuie sa se vada un banutz, un cerc de diametrul unei monede de 5 bani. Temperatura eu am mentinut-o la 38-38,5 grade. Partea electronica era simpla, un termistor montat intr-o punte Wheatsone legata de un operational (|u741) care actiona un tranzistor si acesta un tiristor legat intr-o punte redresoare. 

Randamentul depinde de incubator dar si de alti factori, sa nu uitam ca avem de-a face cu ceva viu, biologic, de individualitati irepetabile. In literatura, la oauale din gospodarie randamentul consacrat este de 60%. In crescatorii randamentul este de 90%. Mortalitatea puilor in ou are ca factor principal lipsa de mangan din hrana gainilor. Pt asta se va pune permanganat de potasiu in apa de baut si ca hrana se va adauga orz sau ovaz incoltit in hrana (cate un pumn la o galeata), praf de creta si vitamina B 5.

Link spre comentariu
  • 2 săptămâni mai târziu...

Salut,

 

 Am construit si eu de-a lungul anilor mai multe incubatoare in carcase de frigider fram - cum spunea un coleg mai sus mai bune sunt cele mai mici (ex fram 112). Eu am mers pe simplitate: rezistenta de incubator (Cleo), termostat cu AO 741,  termistor si releu- temperatura setata la 37.5 grade, tava cu apa si 4 rafturi din lemn si plasa. In urma experimentelor, am ramas la urmatoarea configuratie:

       - rezistenta amplasata pe peretele opus usii separata de rafturi de o plasa metalica,

       - 2 cooler-e de sursa PC (din cele mici) amplasate in partea de jos in pozitie verticala deasupra tavii cu apa,

       - un decupaj in partea de sus, astupat cu o grila de plastic perforat, pentru aerisire

       - un termometru digital cu senzorul pe fir- pt monitorizare.

Este al treilea sezon iar procentul de ecloziune a fost peste 80% (oua de curte neselectionate). Incap 42 de oua pe raft, fiind 4 rafturi. Intoarcerea se face manual de 2 ori pe zi.

Pentru cresterea umiditatii se poate utiliza un pulverizator (ca cele pt geamuri) cu care se pulverizeaza apa calda in incinta dupa intoarcere sau se adauga apa mai calda un pic in tava incubatorului. Dar cele 2 cooler-e ajuta la mentinerea unei umiditati suficiente in interior.

Un UPS cu un acumulator auto (chiar mai obosit un pic) asigura back-up suficient cand se intrerupe tensiunea (desi izolatia carcasei mentine cateva ore bune temperatura peste 25 grade).

Sper sa va foloseasca experienta mea.

 

            Stima,

Link spre comentariu
  • 1 lună mai târziu...

So where is the feeling?

 

 

 

Mai pe scurt....oricata automatizare ai face......nu o sa obtii ecluzare .......   "clota"     cum i se spune in popor.....are un mic atu.......comunica cu ceea ce va deveni un pui......temperatura,umiditate,fertil.......cam 50%......restul?

Si mare grija...... mai ales la oule de curca..........

Link spre comentariu
  • 4 săptămâni mai târziu...

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări