Ergebnis 1 bis 9 von 9

Thema: Selbstbau Brutmschine, erster Probelauf mit 12 Eiern

  1. #1

    Registriert seit
    29.05.2013
    Beiträge
    6

    Selbstbau Brutmschine, erster Probelauf mit 12 Eiern

    Hallo zusammen,

    Ich habe mir in den letzten Tagen einen Mikrocontrollerbrüter gebaut. ImageUploadedByTapatalk1372534464.795446.jpg
    Luftfeuchtigkeit und Temperatur werden von einem HYT271 gemessen. Ausgewertet und geregelt von einem Atmega8. Heizung und Luftbefeuchter werden jeweils über 2x50 Watt Widerstände beheizt. Das ganze hängt an einem alten 19V Notebooknetzteil mit 130W.

    Heute habe ich 12 Eier der Hühner meines Nachbarn reingelegt. Alles Kinder der Liebe
    ImageUploadedByTapatalk1372534713.134393.jpg

    Die Regelung funktioniert 1A
    ImageUploadedByTapatalk1372534749.498189.jpg
    ImageUploadedByTapatalk1372534764.206851.jpg
    ImageUploadedByTapatalk1372534776.320954.jpg

    Platz für die Wendung ist in dem schmucken Komödchen leider nicht...

    Naja, nächstes Projekt

    Bei Interesse kann ich Schaltplan und Quellcode gerne hier Posten.

    Viele Grüße
    Matthias

  2. #2

    Registriert seit
    02.06.2013
    Beiträge
    82
    hi schön dein gerät
    könntest du Schaltplan und Quellcode posten
    lg

  3. #3
    Avatar von Lilililumi
    Registriert seit
    21.01.2013
    Ort
    Söhlde
    PLZ
    31185
    Land
    Deutschland
    Beiträge
    59
    Mich würde interessieren womit du den AT programmiert hast, also wie an den PC angeschlossen? :-D Ich hab so ein Dings dafür auf Ebay gekauft aber da passen die ATs die ich hier habe nicht 'dran'.
    Irgendwas mach ich verkehrt :-D
    Ich wollte das Ganze mit den Mikrocontrollern doch auch mal ausprobieren.
    Liebe Grüße, Lisa

    Bei uns wohnen: 1,1 Menschen, 1,2 Katzen, 1,0 Vorwerkhühner, 0,3 Legehybriden, 1,2,1 Seidenhühner, 0,0,4 Orpiküken, 0,0,2 Mixküken

  4. #4

    Registriert seit
    29.05.2013
    Beiträge
    6
    Themenstarter
    Hi, besonders einfach geht es mit den USB ISP-Teilen. Wie Ebaynr. 281121456079. damit arbeite ich nur noch.
    Dieses konkrete Projekt habe ich allerdings noch einfacher umgesetzt. Ein Arbeitskollege war von Arduinos total begeistert. Und daher wollte ich die auch mal ausprobieren. Der Brüter rechnet daher mit einem Arduino Nano wie Nr. 221219645494
    Und ich muss sagen: Sowas einfaches hab ich noch nie erlebt. Super easy, schnelle Erfolge, das macht richtig Spaß. Und das bei dem bisschen Geld!!!

    Code schicke ich nachher.

    Viele Grüße
    M

  5. #5

    Registriert seit
    22.06.2013
    Beiträge
    1
    Zitat Zitat von brutmaschine Beitrag anzeigen
    hi schön dein gerät
    könntest du Schaltplan und Quellcode posten
    lg
    Hallo, würde mich auch sehr interessieren!

  6. #6
    Avatar von chickinc
    Registriert seit
    13.07.2013
    Ort
    Wuppertal
    Land
    D
    Beiträge
    11
    Deiner Apparat ist ech Klasse! Du hast eine gute Arbeit gemacht. Aber sei forsichtig auf die Temperatur (38,5 gC ist zu Viell. Die muss mindestens 37,5 gC und maximum 37,77 gC sein.)
    Wenn du Zeit hast, nicht vergessen von der Plan und der Code zu posten. Viele Grüße!

  7. #7

    Registriert seit
    29.05.2013
    Beiträge
    6
    Themenstarter
    Hallo,
    einen Schaltplan direkt gibt es nicht.

    An den PWM-Ausgängen (siehe Code) hängt ein Mosfet (IRLIZ44 ist super, BUZ12 geht auch). Natürlich mit 10k gegen Masse und 100R als "Gatestopper" (kommt aus meiner Röhrenzeit...).

    Hier ist der Code, nicht besonders schön, aber er funtkioniert.
    Die Schrittweite ist derzeit +1, das kann man eventuell ändern. Ich habe so Schwankungen von -0.5/+0.2 hinbekommen, was mir ausreicht. Von den befruchteten Eiern ist nur eins "stehengeblieben".

    PHP-Code:
    #include <Wire.h>   // include Wire library for I2C
    #include <LiquidCrystal.h>

    // initialize the library with the numbers of the interface pins
    LiquidCrystal lcd(12117432);

    int TemperatureSetPin A0;    // select the input pin for the potentiometer
    int HumiditySetPin A1;    // select the input pin for the potentiometer
    int PWM_Heater_Pin 5;
    int PWM_Humidifier_Pin 6;
    int PWM_Fan_Pin 9;

    int ledPin 13;      // select the pin for the LED

    int PWM_Heater 0;
    int PWM_Humidifier 0;    
    int PWM_Fan 0;
    int PWM_Heater_Percent 0;
    int PWM_Humidifier_Percent 0;
    // Set Points
    double Humidity_Set 60.0;
    double Temperature_Set 0;
    // Actual Points
    double Humidity;
    double Temperature;

    int Hyt271Delay 0;
    int wenden 0;

    //Encoder myEnc(8, 9);

    void setup() {

      
    pinMode(ledPinOUTPUT);
      
    lcd.begin(204);

      
    lcd.setCursor(00);
      
    lcd.print("    Brood-O-Matic");
      
    lcd.setCursor(01);
      
    lcd.print("   SW-Version 1.03");
      
    lcd.setCursor(02);
      
    lcd.print("     08.07.2013");
      
    lcd.setCursor(03);
      
    lcd.print("   Matthias Mett");
      
    delay(2000);
      
    lcd.clear();

    #define HYT271_ADDR 0x28

      
    Wire.begin();   // start Wire library as I2C-Bus Master
      
    Serial.begin(9600);
    }

    void loop() {


      
    Wire.beginTransmission(HYT271_ADDR);
      
    Wire.write(0);
      
    Wire.available();
      
    int Ack Wire.read(); // receive a byte

      
    Wire.endTransmission();

      
    // http://www.ist-ag.com/eh/ist-ag/resource.nsf/imgref/Download_AHHYT-I2C_E1.1.pdf/$FILE/AHHYT-I2C_E1.1.pdf
      // http://mawaases.net/hyt-371-i2c-sensor-am-arduino/

      
    Hyt271Delay 20;
      while (
    Hyt271Delay 0) {
        
    analogMesure();
        
    lcdOutput();
        
    delay(1);
        
    Hyt271Delay--;
      }

      
    // READ DATA from here on
      
    Wire.beginTransmission(HYT271_ADDR);
      
    Wire.requestFrom(HYT271_ADDR4);  //Reade 1 byte
      
    Wire.available();
      
    int b1 Wire.read(); // receive a byte
      
    int b2 Wire.read(); // receive a byte
      
    int b3 Wire.read(); // receive a byte
      
    int b4 Wire.read(); // receive a byte
      
    Wire.write(0); //NACK

      // combine the bits
      
    int RawHumidBin b1 << b2;
      
    // compound bitwise to get 14 bit measurement first two bits
      // are status/stall bit (see intro text)
      
    RawHumidBin = (RawHumidBin &= 0x3FFF);
      
    Humidity 100.0 pow(214) * RawHumidBin;
      
    // Cut off after one decimal place
      
    Humidity float(((int)(Humidity*10))/10.0);

      
    b4 = (b4 &= 0x3F); //Mask away 2 least sign. bits see HYT 221 doc
      
    int RawTempBin b3 << b4;
      
    Temperature 165.0 pow(214) * RawTempBin 40;
      
    // Cut off after one decimal place
      
    Temperature float(((int)(Temperature*10))/10.0);

      
    Wire.endTransmission();

      
    ///////////////////////////////////////////////////////
      // Calculate and set Temperature PWM value
      ///////////////////////////////////////////////////////
      
    if (Temperature_Set Temperature) {
        if (
    Temperature_Set Temperature 2)
          
    PWM_Heater += 50;
        else
          
    PWM_Heater++;
      }
      if (
    Temperature_Set Temperature)
        
    PWM_Heater 0;

      if (
    PWM_Heater 255)
        
    PWM_Heater 255;

      
    PWM_Heater_Percent PWM_Heater 2.55;

      
    ///////////////////////////////////////////////////////
      // Calculate and set Humidity PWM value
      ///////////////////////////////////////////////////////
      
    if (Humidity_Set Humidity) {
        if (
    Humidity_Set Humidity 20)
          
    PWM_Humidifier += 50;
        else
          
    PWM_Humidifier++;
      }
      if (
    Humidity_Set Humidity)
        
    PWM_Humidifier 0;

      if (
    PWM_Humidifier 255)
        
    PWM_Humidifier 255;


      
    ///////////////////////////////////////////////////////
      // If water in the bucket is low or empty
      // temp will raise and humidity will drop to approx. 20%.
      // If so stop the humidifier.
      ///////////////////////////////////////////////////////

      
    if (( Temperature 38.5) || (Humidity 20) ) 
        
    PWM_Humidifier 0;



      
    PWM_Humidifier_Percent PWM_Humidifier 2.55;


      
    ///////////////////////////////////////////////////////
      // Set all the output Pins to the calculated states
      ///////////////////////////////////////////////////////
      
    analogWrite(PWM_Heater_PinPWM_Heater);
      
    analogWrite(PWM_Humidifier_PinPWM_Humidifier);

      
    ///////////////////////////////////////////////////////
      // Status on Serial and LCD
      ///////////////////////////////////////////////////////

      
    Serial.print("Ziel Rel.LF: ");
      
    Serial.print(Humidity_Set1);
      
    Serial.print("%  Temp: ");
      
    Serial.print(Temperature_Set1);
      
    Serial.println("C");

      
    Serial.print("Ist  Rel.LF: ");
      
    Serial.print(Humidity1);
      
    Serial.print("%  Temp: ");
      
    Serial.print(Temperature1);
      
    Serial.println("C");

      
    Serial.print("Humidifier PWM:");
      
    Serial.print(PWM_Humidifier_Percent);
      
    Serial.print("%  Heater PWM: ");
      
    Serial.print(PWM_Heater_Percent);
      
    Serial.println("%");
    }

    void lcdOutput() {
      
    // set up the LCD's number of columns and rows: 
      // lcd.setCursor(0, 0); // top left
      // lcd.setCursor(15, 0); // top right
      // lcd.setCursor(0, 1); // bottom left
      // lcd.setCursor(15, 1); // bottom right
      /*

       012345678901234567890
       0    Soll: 38.5°C 65%
       1    Ist:  36.2°C 58%
       2    Heiz: 100%  100%
       3    Wenden in 3,5h
            
       */

      
    lcd.setCursor(00);
      
    lcd.print("Soll:  ");
      
    lcd.print(Humidity_Set1);
      
    lcd.print("% ");
      
    lcd.print(Temperature_Set1);
      
    lcd.write(0xDF);
      
    lcd.print("C");

      
    lcd.setCursor(01);
      
    lcd.print("Ist:   ");
      
    lcd.print(Humidity1);
      
    lcd.print("% ");
      
    lcd.print(Temperature1);
      
    lcd.write(0xDF);
      
    lcd.print("C");

      
    lcd.setCursor(02);
      
    lcd.print("Heizung:");

      if (
    PWM_Humidifier_Percent 100) {
        
    lcd.print(' ');
        if (
    PWM_Humidifier_Percent 10)
          
    lcd.print(' ');
      }
      
    lcd.print(PWM_Humidifier_Percent);
      
    lcd.print("%   ");

      if (
    PWM_Heater_Percent 100) {
        
    lcd.print(' ');
        if (
    PWM_Heater_Percent 10)
          
    lcd.print(' ');
      }
      
    lcd.print(PWM_Heater_Percent);
      
    lcd.print("%");

      
    lcd.setCursor(03);
      
    lcd.print("Wenden");
      if (
    wenden == 0)
        
    lcd.print(": Aus");
      if (
    wenden 0) {
        
    lcd.print(": in");
        
    lcd.print(wenden);
        
    lcd.print(" Sek.");
      }
    }

    void analogMesure() {
      
    // Humidity may be set between 40...99.9%C
      // analogRead =    0 --> 40.0
      // analogRead = 1023 --> 99.9
      
    Humidity_Set = (analogRead(HumiditySetPin) / 17) + 40;
      
    // Cut off after one decimal place
      
    Humidity_Set float(((int)(Humidity_Set*10))/10.0);
      if (
    Humidity_Set 99.9)
        
    Humidity_Set 99.9;
      if (
    Humidity_Set 40.0)
        
    Humidity_Set 40.0;

      
    // Temperature may be set between 24...40°C
      // analogRead =    0 --> 24.0
      // analogRead = 1023 --> 40.0
      
    Temperature_Set = ((float) analogRead(TemperatureSetPin) / 64.0) + 24.0;
      
    // Cut off after one decimal place
      
    Temperature_Set float(((int)(Temperature_Set*10))/10.0);
      if (
    Temperature_Set 40.0)
        
    Temperature_Set 40.0;
      if (
    Temperature_Set 24.0)
        
    Temperature_Set 24.0;

    Fragen gerne hier!

    Das Einstellen der Temperatur geht über einen 10-Gang-Poti. Davon hab ich mal ein paar "geerbt" und nun endlich mal verbaut. Die Luftfeuchte über ein normales Poti. Das verstellt sich aber ab und zu, ist also Temp/Luftfeuchte-Sensitiv.
    Besser wären Taster oder ein Encoder. Naja, nächste Version

    VG
    Matthias
    Geändert von Mettigel (17.07.2013 um 16:39 Uhr)

  8. #8

    Registriert seit
    29.05.2013
    Beiträge
    6
    Themenstarter
    So, alles gut gegangen


  9. #9
    Avatar von chickinc
    Registriert seit
    13.07.2013
    Ort
    Wuppertal
    Land
    D
    Beiträge
    11
    Sehr schön! Ich freue mich für dich und das Küken sieht gut aus. Wie viele haben geschümpft?

Ähnliche Themen

  1. Antworten: 26
    Letzter Beitrag: 03.07.2015, 09:00
  2. Selbstbau Brutapparat
    Von Klaus. im Forum Kunstbrut
    Antworten: 4
    Letzter Beitrag: 20.02.2014, 21:12
  3. Selbstbau Hühnerhaus ~ 12 m²
    Von dettl im Forum Das Hühnerhaus
    Antworten: 31
    Letzter Beitrag: 29.09.2012, 13:00
  4. Selbstbau Brüter
    Von S. Pargel im Forum Kunstbrut
    Antworten: 63
    Letzter Beitrag: 09.04.2012, 12:57
  5. Probelauf Motorbrüter Inca
    Von heissnhof im Forum Kunstbrut
    Antworten: 2
    Letzter Beitrag: 05.11.2007, 09:29

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •