Low-cost en nauwkeurige incubator voor DIY biologie (4 / 8 stap)

Stap 4: De code van de arduino

In de volgende stap bespreken we hoe u kunt besturen dit circuit met de Arduino-code. U kunt gewoon downloaden en uitvoeren van onze code. De rest van deze stap gaat in de bloederige details van hoe de code werkt. Houd er rekening mee dat sommige delen van onze code zijn gebaseerd op de Arduino AC fase controle tutorial en we opnieuw een deel van die code gebruikt, zoals het is.

De Arduino UNO bord bevat een ATmega328P 16MHz microprocessor. Om te activeren AC fase bedieningscircuit op precies getimede intervallen we interrupt functies van de timer van de hardware van ATmega328 gebruikt. Dus, als u niet bekend met concepten zoals timers, register overflows en prescaling bent, dat dit artikel legt hen beter.

Voordat we ingaan op de codering die wij moeten doen sommige eenvoudige berekeningen. De AC-signaal is 60 Hz. (maak je geen zorgen als u 50Hz in uw land hebt, kunt u opnieuw berekenen het gemakkelijk) Dit betekent het AC signaal kruist nul, piek positieve spanning bereikt, kruist nul opnieuw, piek negatieve spanning bereikt en terug naar nul 60 keer per seconde. De periode (lengte van de tijd die hiervoor nodig) is 1/60 of 0.01667 seconden (16.67 milliseconden). Dus, een halve cyclus of de tijd tussen twee nul-kruising pulsen treedt op in 8.33 milliseconden.

Vanaf hier bepalen wij tijdsintervallen in de code van de klok graven, niet door seconden. De Arduino Klok draait op 16 MHz, oftewel 16,000,000 cycli per seconde: één klokcyclus 0.0625 microseconden neemt. Één die helft cyclus van het signaal van de AC 60 Hz bevat 133,333 klokcycli. De 16-bits timer (timer1) van de Arduino Uno kan alleen tellen tot 65535. We moeten zo configureren dat met een prescaler. In deze code gebruikten we een 256 prescaler. Met de 256 prescaler betekent een halve cyclus ongeveer 520 timer stappen. Om praktische redenen (lichte wijzigingen in aanbod frequentie en triac operationele vertragingen) vonden we het als 450. Dit verzekert dat de triac-stuurprogramma heeft tijd om uit te schakelen voordat de volgende halve cyclus. Dus we geregeld de wachttijd voordat de triac binnen het bereik 1-450 binnen elke halve cyclus inschakelen om te bepalen het vermogen. We Comparateur wedstrijd interrupts hiervoor gebruikt. We gebruikten timer overloop interrupts te controleren van het signaal naar triac gate en de pulsbreedte ingesteld op 4 timer telt. Hier, nul wanneer de pols wordt verzonden naar de GATE van de triac, het zal de AC-levering inschakelen en ON zal blijven, zelfs nadat de pols wordt verwijderd totdat u de volgende keer dat de AC-Golf. (Als u niet bekend bent met de Triac bediening is dit een goed artikel.) Hierdoor hoeft niet wij te maken over het uitschakelen van de triac.

Volgende codefragment toont de AC fase beheersing van logica.

#define analyse 2 / /nul Kruis detecteren

#define GATE 9 / /triac poort

#define PULSE 4 / /trigger pulsbreedte (graven)

Timer1(16-bit) instellen

OCR1A = 100; initialiseren van de comparator

TIMSK1 = 0X03; Comparateur A inschakelen en overloop interrupts

TCCR1A = 0X00; Timer-besturingselement registreert set voor

TCCR1B = 0X00; normale werking, timer uitgeschakeld

instellen op nul kruising interrupt

attachInterrupt (0, zeroCrossingInterrupt, stijgt);

nul Kruis gedetecteerd

ongeldig zeroCrossingInterrupt() {}

TCCR1B = 0X04; timer met kloof door 256 ingang start

TCNT1 = 0; opnieuw instellen van de timer - graaf van nul - graven totdat deze overeenkomt met de waarde van de comparator

}

Comparateur match - bereikt van de verwachte vertraging

ISR(TIMER1_COMPA_vect) {}

digitalWrite(GATE,HIGH); set triac poort naar hoge - install

TCNT1 = 65536-PULSE; trigger pulsbreedte

}

overloop van de timer1 - pulse bereikt de breedte

ISR(TIMER1_OVF_vect) {}

digitalWrite(GATE,LOW); triac poort uitschakelen

TCCR1B = 0X00; uitschakelen van de timer om te stoppen met onbedoelde triggers

}

Temperatuur controle

Nu zijn we klaar met het lastigste onderdeel van onze code. Vervolgens is het bepalen van de macht (of de vertragingstijd) volgens de huidige waarde van de temperatuur en de temperatuur van de gewenste doelgroep. We gebruikten om te lezen van de temperatuur de Adafruit_MAX31855 bibliotheek. We gebruikten ter uitvoering van het controlemechanisme PID controle logica. Maak je geen zorgen als het klinkt een beetje ingewikkeld. Gelukkig hebben wij een Arduino library daarvoor. Het volgende fragment toont de code daarvoor.

#define 3

#define CS 4

#define CLK 5

Adafruit_MAX31855 thermokoppel (CLK, CS, DO);

dubbele setPoint, Input, Output; Define variabelen we verbinding met maken zullen

dubbele Kp = 2, Ki = 6, Kd = 1; Geef de links en eerste tuning parameters

PID myPID (Input, Output, & setPoint, Kp, Ki, Kd, DIRECT);

myPID.SetMode(AUTOMATIC);

myPID.SetOutputLimits (0, 449); de reeks

binnen de lus-methode

dubbele c = thermocouple.readCelsius();

Als (isnan(c)) {}

Ik = 450; Ga naar minimaal vermogen als er iets fout gegaan

}

else {}

Input = c; myPID.Compute();

Ik = 450-Output; verlagen van de vertraging, hogere de macht

}

OCR1A = i; Comparateur waarde tot en met i

delay(400); / / wachten voordat het volgende temperatuur lezen


Gebruikersinterface

Programma van de gebruikersinterface gebruikt wij olimex lcd schild bibliotheek samen met Arduino draad bibliotheek. U kunt download de olimex bibliotheek van Olimex website.

Gerelateerde Artikelen

Low-Cost IC Test Clip voor PIC ICSP

Low-Cost IC Test Clip voor PIC ICSP

Ik maakte de Low Cost IC Test Clip voor ICSP voor PIC Microcontrollers.http://Neo-Sahara.com/wp/ic_test_clipStap 1: Koperen band en doek peg gebruiken.Stap 2: De koperen tape zetten op de doek peg en snijd de tapes als 2,54 mm pitch.Stap 3: Soldeer k
Nauwkeurig vloeibare niveau Controller met low-cost sensor en afstandsbediening voor instellingen

Nauwkeurig vloeibare niveau Controller met low-cost sensor en afstandsbediening voor instellingen

Dit is het mijn eerste Arduino project van personeel. Zelfs door ik ben van plan voor het automatiseren van onze over tank waterniveau ik niet willen investeren meer geld op instrumenten. Ik heb sommige Arduino board en relay boards van mijn vrienden
Het bouwen van een low-cost, scrollen LED-display voor de Arduino microprocessor regeling.

Het bouwen van een low-cost, scrollen LED-display voor de Arduino microprocessor regeling.

The Arduino Microcomputer system is een betaalbaar platform voor meer informatie over microprocessing en programmering. Nog Arduinos kan worden gebruikt voor instrumentatie, Robotica en vele geautomatiseerde processen.In deze serie gaan we door enkel
ARUPi - een Low-Cost geautomatiseerde opname-eenheid voor Soundscape ecologen

ARUPi - een Low-Cost geautomatiseerde opname-eenheid voor Soundscape ecologen

Dit instructable werd geschreven door Anthony Turner. Het project werd ontwikkeld met veel hulp van de schuur in de School van Computing, Universiteit van Kent (heer Daniel Knox was een grote hulp!).Het zal u tonen hoe te bouwen van een geautomatisee
Low-cost 1 draad lcd voor 8-pins en micro-controllers [romanblack shift1 systeem]

Low-cost 1 draad lcd voor 8-pins en micro-controllers [romanblack shift1 systeem]

Shift1 systeem is een goedkope en eenvoudige manier om veel van de digitale uitgang pinnen en alleen behoefte 1 PIC pin om te rijden.Stap 1: Hoe het werkt - het eenvoudige systeem Normaal, seriële-in parallel-out shift register ICs kan worden ingeste
Hoe maak je een R2D2 Low Cost volledige grootte Scratch gebouwd

Hoe maak je een R2D2 Low Cost volledige grootte Scratch gebouwd

GES en welkom op mijn R2D2 bouwen dat iedereen kan met een beetje van DIY vaardigheden en wat vrije tijd.deze build is een low-cost r2d2 gemaakt met fundamentele DIY tools meeste thuis hebben en het gebruik van schroothout en MDF en andere stukjes di
Bouwen van een Low-Cost Stirlingmotor voor elektriciteitsproductie

Bouwen van een Low-Cost Stirlingmotor voor elektriciteitsproductie

Voordat ik mijn Instructables willen benadrukken dat dit niet een einddatum-project en nog steeds gaande is vanaf het moment ik ben het creëren van deze Instructables beginnen zal. Ik heb al meer dan 3 maanden, waardoor dit al ben ik in de buurt van
Low-cost diy koelmiddel ventiel cap.

Low-cost diy koelmiddel ventiel cap.

Hier is een low-cost en robuuste manier om een strakke luchtkap voor elke koelmiddel klep. Ik heb een blanking cap niet dus natuurlijk ik mijn eigen maakte. Alles wat u nodig hebt is een passende formaat flare-moer.Stap 1: De tools. Een propaan torch
Low-Cost Illuminated signalering voor Todays verantwoordelijk burger

Low-Cost Illuminated signalering voor Todays verantwoordelijk burger

Low-cost, verlichte bewegwijzering voor todays verantwoordelijk burger hoffelijkheid van de GRL en de Eyebeam OpenLab. Dit leerprogramma zal verklaren de hulpmiddelen en de processen die we gebruikten om LED Kerst verlichting, plexiglas en touw te ma
Afdrukken met geavanceerde filamenten | DIY eenvoudige low-cost extruder

Afdrukken met geavanceerde filamenten | DIY eenvoudige low-cost extruder

U kunt het bekijken van de eerste versie van de atom extuder vanhierWe ontwierpen deze extruder worden-Eenvoudig en gemakkelijk te bouwen-Low-cost-Compact ontwerp-Laag eigen gewicht-Ruimtebesparend-Draad beheer-Eenvoudig te monteren-Een actieve koelv
Earthbox... eenvoudige, low-cost!

Earthbox... eenvoudige, low-cost!

Dit was mijn eerste poging tot het maken van een Earthbox. Toen kwam ik in een Earthbox-constructie, was ik willekeurige video's op youtube kijken. Na onderzoek meer, begrepen ik heb dat er een geweldige manier om planten - sneller groeien, water eff
Low-Cost modulaire Neuroprosthetic

Low-Cost modulaire Neuroprosthetic

Mijn naam is JD, en ik ben een tweedejaars op de Middelbare School. Ik heb gewerkt aan dit project enige tijd nu, en ben nog steeds actief te verbeteren, maar wilde om te beginnen met het documenteren van mijn werk online, zodat anderen kunnen kunnen
How To Build een grimmige industrieën Iron Man Arc Reactor... Zeer zeer low-cost...

How To Build een grimmige industrieën Iron Man Arc Reactor... Zeer zeer low-cost...

How To Build een grimmige industrieën Iron Man Arc Reactor... Zeer zeer low-cost arc reactor diede meeste kan zeer gemakkelijk maken.nu heb ik een vinyl cutter en ik heb gebruik van een stuurlieden cnc router maar het gaat hier om een te bouwen datie
Low-Cost Spirometer

Low-Cost Spirometer

Dit is een project dat ik voor een biomedische instrumentatie-klasse aan de Vanderbilt University afgesloten. Deze spirometer gebruikt een drukopnemer en een Arduino Uno voor het berekenen van de hoeveelheid lucht geblazen door de kunststof buis. Het