Geautomatiseerde elektrochemie Setup (3 / 5 stap)

Stap 3: Code


Na het proberen zeer hard om mijn code te laten functioneren, ik uiteindelijk gaf in de externe-kalibratie-met-zinloos-nummers methode :) Ik bedoel te zeggen dat u niet hoeft te begrijpen wat de code doet als u niet wilt, gewoon een waarde wijzigen en observeren van de invloed ervan op de uitgangsspanning of duur. Ik zal bespreken kalibratie in de volgende stap.

Er zijn 2 variabelen die ik wil dat je om naar te kijken voordat naar de volgende stap, die het experiment tijden (t_25, t_16, t_9, t_4 en t_1 zijn) en de taakcyclus op keer (het getal in de eerste _delay_ms() noemen in elke lus)

De code is geschreven in Atmel Studio. Ik gebruikte voor het uploaden van de code, avrdude. Beide zijn gratis. Met avrdude, kunt u het hex bestand opgenomen in de map van de zip gekoppeld aan deze stap met behulp van de volgende regel in de opdrachtprompt nadat u naar de juiste map navigeren uploaden:
avrdude - c usbtiny -p t85 - U flash:w:rde2.hex

Met behulp van een arduino zou dit een stuk eenvoudiger maar duurder maken. Op een arduino hebt u een AnalogWrite()-functie die een heleboel dit zou vereenvoudigen. De stroom zou vervolgens worden AnalogWrite(voltage_desired) -> delay(experiment_time) -> herhalen...

#include < avr/io.h >
#include < util/delay.h >
#define F_CPU 800000UL

float-t_25, t_16, t_9, t_4, t_1; float type is niet nodig maar ik heb genoeg van geheugen

int main(void)
{
vooraf ingesteld voor 1V domein @ 5mV/s snelheid.   Wijzigen als uw experiment anders is.
t_25 = 207*207000/(2.1920*227);  207000 is de lengte van het experiment in milliseconden
t_16 = 207*207000/(1.5580*227);  207/227 is een kalibratie-constante
t_9 = 207*304000/(1.2585*227);  2.1920, 1.5580, etc zijn de lengtes van de for-lussen overeenkomt met dat deel van het experiment
t_4 = 207*304000/(1.1000*227);
t_1 = 207*304000/(1.0220*227);

set uitgang pins
DDRB | = (1 << DDB0) | (1 << DDB1);
Fast PWM-modus, Golf formulier generatie bit [1:0]
TCCR0A = (1 << COM0A1) | (1 << WGM00) | (1 << WGM01);
golfvorm bits [2], prescalar 1024
TCCR0B = (1 << WGM02) | (1 << CS02) | (1 << CS00);
vergelijken van de output registreren
OCR0A = 0;

voor (zweven t = 0; t < t_25; t ++)
{
PORTB | = (1 << PB1);
_delay_ms(1.192);   Dit bepaalt het pulserend sproeien en daarmee de spanning van de analoge uitgang
PORTB & = ~ (1 << PB1);  een hogere waarde geeft een grotere taakcyclus en dus hogere spanning
_delay_ms(1);    de 1 ms (uitgeschakeld) vertraging wordt willekeurig gekozen
}

voor (zweven t = 0; t < t_16; t ++)
{
PORTB | = (1 << PB1);
_delay_ms(0.558);
PORTB & = ~ (1 << PB1);
_delay_ms(1);
}

voor (zweven t = 0; t < t_9; t ++)
{
PORTB | = (1 << PB1);
_delay_ms((0.2585));
PORTB & = ~ (1 << PB1);
_delay_ms(1);
}

voor (zweven t = 0; t < t_4; t ++)
{
PORTB | = (1 << PB1);
_delay_ms(0.1);
PORTB & = ~ (1 << PB1);
_delay_ms(1);
}

voor (zweven t = 0; t < t_1; t ++)
{
PORTB | = (1 << PB1);
_delay_ms(0.022);
PORTB & = ~ (1 << PB1);
_delay_ms(1);
}

while(1) / / end staat
{
PORTB | = (1 << PB1);
_delay_ms(0);
PORTB & = ~ (1 << PB1);
_delay_ms(600000); 10 minuten om te voorkomen dat ruis op de lijn
}
}

Gerelateerde Artikelen

Arduino experimenten (Superformaat Instructable)

Arduino experimenten (Superformaat Instructable)

Massa's, zo niet alle Arduino experimenten gedaan op mijn manier, die wordt iedereen carry van uit naar de volgende persoon verschillende experimenten hebben als zodanig dit instructable zal een heleboel video's, en foto's evenals gedetailleerde besc
Somabot - een geautomatiseerde Barman (Intel IOT)

Somabot - een geautomatiseerde Barman (Intel IOT)

Somabot is een geautomatiseerde barman. Selecteer in de ingrediënten en en de drankjes zijn toegankelijk vanaf elke mobiel of desktop browser klaar om cocktails voor u maken. Ik heb een NFC-chip op de linksboven, bijgevoegd, zodat de controle-interfa
Geautomatiseerde zonne-aangedreven horizontale Blind Controller

Geautomatiseerde zonne-aangedreven horizontale Blind Controller

Ik begon dit project, omdat we sommige horizontale jaloezieën gelegen in een hoog raam over de belangrijkste deur naar ons huis hebben. Dit venster gezichten zuiden en hier in Colorado, dat betekent veel zon. Het zou leuk om te hebben dat zonlicht sh
DIY geautomatiseerd thee zetter

DIY geautomatiseerd thee zetter

Update: gekenmerkt in HackADay:http://hackaday.com/2015/01/28/Automated-Tea-Maker...en Adafruit:https://blog.adafruit.com/2015/01/12/Create-Your-o...en bekabeld UK (mei 2015)http://www.Wired.co.UK/magazine/Archive/2015/05/How-to/Automate-your-own-Tea
Geautomatiseerde drenken van potplanten met Intel Edison

Geautomatiseerde drenken van potplanten met Intel Edison

Geautomatiseerde drenken van potplanten met Intel Edison... Een vocht Sensor detecteert het lage vochtgehalte van de bodem en activeert de waterpomp of de solenoïde ventiel dat de stroom van water. Wanneer de vereiste water wordt gepompt naar de plan
De Opdringer van de pneumatische knop geautomatiseerde

De Opdringer van de pneumatische knop geautomatiseerde

Het hoofd van elektrotechniek kwam naar me en zei dat we moesten foltering testen de knoppen van een circuit bord ze ontworpen. Ze hadden de klok rond knop te drukken voor meerdere dagen om te testen het uithoudingsvermogen van mechanische schakelaar
Geautomatiseerd Christmas Light Display

Geautomatiseerd Christmas Light Display

dit instructable is een gids voor het creëren van een fundamentele kerst verlichting display dat is gesynchroniseerd met kerstmuziek. Er zijn veel video's op het internet van deze populaire vorm van meningsuiting met betrekking tot de kerst-seizoen.
Intel geautomatiseerd tuinieren-systeem

Intel geautomatiseerd tuinieren-systeem

Hallo iedereen!Dit is mijn eerste Instructabe op Intel Edison. Dit instructable is een gids voor het maken van een geautomatiseerd drenken (druppelirrigatie) systeem voor kleine potplanten of kruiden met behulp van een Intel Edison en andere goedkope
Geautomatiseerde Climate Control

Geautomatiseerde Climate Control

Ik ben kieskeurig over hoe ik het klimaat in mijn kamer, met name in de winter. Ik vind de ventilator aan als ik ga naar bed, omdat ik graag de white noise en de wind, maar ik ook te vochtig zijn, anders krijg ik geschokt, elke keer als ik stap op he
Geautomatiseerde koelventilator voor Pi

Geautomatiseerde koelventilator voor Pi

BeschrijvingEen eenvoudige ontwerpen aan controle een mini 5v fan met python, zonder de noodzaak van een breadbord, transistoren enz. Alles wat die u nodig hebt zijn een paar kabels en een 1-kanaals Relais. Ik had een 2-kanaals Relais die ik, aangezi
Geautomatiseerde Web Testing in Ruby met Watir-Webdriver

Geautomatiseerde Web Testing in Ruby met Watir-Webdriver

Dit instructable is over geautomatiseerde webtoepassing testen met de Ruby programmeertaal en de Watir-Webdriver gem. Deze vindt u op http://rubyinstaller.org/ en http://watirwebdriver.com/ respectievelijk.Ruby is een eenvoudig te leren en gemakkelij
Geautomatiseerde motregent sprouter

Geautomatiseerde motregent sprouter

als u houdt van spruiten, dit is de manier om ze groeien. Het is volledig geautomatiseerd, en alles wat die je hoeft te doen zet zaden in de laden plaatst en de lade in de groeiende bin. Zodra ze klaar zijn, oogsten, bewaren en eten. Mijn spruiten zi
Geautomatiseerde auto

Geautomatiseerde auto

Dit instructable is bedoeld om een methode voor het omzetten van een afstandsbediening auto in een geautomatiseerde auto bieden. Het eindresultaat is een voertuig die kan reageren op zijn omgeving door middel van een sensor van de nabijheid en dus wo
Halloween traktatie Dispenser - aangedreven door Intel Edison geautomatiseerd

Halloween traktatie Dispenser - aangedreven door Intel Edison geautomatiseerd

Het is bijna die tijd van het jaar weer! Als u net met de planning van uw Halloween decor begonnen hebt, is hier een Geautomatiseerde Halloween behandelen dispenser die u, met de volgende functies maken kunt zoals in de video hierbovenTraktaties afge