BME 3300 BAC mätaren (7 / 8 steg)

Steg 7: programvara

Vi har klistrat in våra prov koden nedan. Denna kod förutsätter att spänningsavdelaren är ansluten till pin A0, den gröna lysdioden är ansluten till den digitala i/o Pin 2 och den röda lysdioden är ansluten till den digitala i/o Pin 3.

Claire & Kyle

Arduino koden för projekt

inkludera bibliotek-koden:

#include

initiera bibliotek med numrerar av gränssnittet stiften

LiquidCrystal lcd(8,9,4,5,6,7);

ställa in ingångsstift att vara pin A0

CONST int analogInPin = A0; Analog ingång pin som potentiometern är kopplad till

int sensorValue = 0; värdet läsa från kretsen

int loadResistor = 1465; värdet av belastning motståndet som vi har beslutat att använda (BAC på 0.08 motsvarar R av 1440 så används nära motstånd värde att maximera känsligheten på denna punkt)

int greenLEDPin = 2; Digital IO pin där våra gröna LED är fäst

int redLEDPin = 3; Digital IO pin där röda lysdioden är fäst

initiera alla variabler för beräkning av BAC

float actualVoltage;

float transducerResistance;

float gasConcentration;

float bloodConcentration;

float BAC;

float BACvalues [50];

float finalBAC;

float summa;

void setup() {

Ange den LCD antal kolumner och rader:

LCD.BEGIN (16, 2);

initiera seriell kommunikation på 9600 bps:

Serial.BEGIN(9600);

ställa in stiften där lamporna är kopplade till produktionen

pinMode(greenLEDPin,OUTPUT);

pinMode(redLEDPin,OUTPUT);

}

void loop() {

När alkoholmätare är först ansluten (intro)

skriva ut våra namn och klassnamnet

LCD.Clear();

lcd.setCursor(0,0);

LCD.Print ("Claire & Kyle");

lcd.setCursor(0,1);

LCD.Print ("BME 3300L");

se till lysdioder start avstängd och summan startar på 0

digitalWrite(greenLEDPin,LOW);

digitalWrite(redLEDPin,LOW);

summa = 0;

Läs analogt värde:

sensorValue = analogRead(analogInPin);

konvertera värdet sensor till faktiska spänningen

actualVoltage = float (sensorValue) * 5/1024;

här säger om knappen trycks, gå till alkoholmätare startskärmen (pre-test)

om (actualVoltage > = 0 & & actualVoltage < = 2.00) {

skriva ut instruktioner för test

LCD.Clear();

lcd.setCursor(0,0);

LCD.Print ("Blow (3 sekunder)");

lcd.setCursor(0,1);

LCD.Print ("Push att starta");

Delay(1000);

Läs analogt värde:

sensorValue = analogRead(analogInPin);

konvertera värdet sensor till faktiska spänningen

actualVoltage = float (sensorValue) * 5/1024;

så länge som knappen inte är intryckt, hålla visar instruktionerna för testet

medan (actualVoltage > = 2,00 || actualVoltage < = 0) {

LCD.Clear();

lcd.setCursor(0,0);

LCD.Print ("Blow (3 sekunder)");

lcd.setCursor(0,1);

LCD.Print ("Push att starta");

Delay(1000);

Läs analogt värde:

sensorValue = analogRead(analogInPin);

konvertera värdet sensor till faktiska spänningen

actualVoltage = float (sensorValue) * 5/1024;

}

Detta är efter knappen trycks (b/c inte längre i while loop)

börja köra testet

berätta för dem att blåsa, skriva ut BAC varje gång

LCD.Clear();

lcd.setCursor(0,0);

LCD.Print ("Blow nu");

lcd.setCursor(0,1);

LCD.Print ("BAC =");

Delay(1000);

loopa igenom och spela BAC över tiden för testning

för (int ii = 0; ii < 50; ii ++) {

Detta är koden för att faktiskt beräkna BAC från kretsen

Läs analogt värde:

sensorValue = analogRead(analogInPin);

konvertera värdet sensor till faktiska spänningen

actualVoltage = float (sensorValue) * 5/1024;

beräkna motståndet av Omformaren

transducerResistance = 5 * loadResistor/actualVoltage - loadResistor;

använda motståndet av givaren och givaren känslighet för att avgöra gaskoncentrationen

eftersom vi anger endast känsla > 50ppm, baserat på kalibrering BAC till 0 när motståndet är större än 1900

om (transducerResistance < 1900) {

gasConcentration = - 0.257 * transducerResistance + 538.55;

}

annat {

gasConcentration = 0;

}

använda gaskoncentrationen för att beräkna koncentrationen i blod

bloodConcentration = gasConcentration/0.21;

använda blod koncentrationen för att mata BAC

BAC = bloodConcentration/10000;

skriva ut resultatet till seriell bildskärmen:

Detta är användbart för oss under testfasen att spåra vad som händer

Serial.Print ("sensor =");

Serial.Print(sensorValue);

Serial.Print ("\t spänning =");

Serial.Print(actualVoltage);

Serial.Print ("\t motstånd =");

Serial.Print(transducerResistance);

Serial.Print ("\t gaskoncentrationen =");

Serial.Print(gasConcentration);

Serial.Print ("\t blod koncentration =");

Serial.Print(bloodConcentration);

Serial.Print ("\t BAC =");

Serial.println(BAC);

skriva ut resultatet till LCD-skärmen:

under test, skriva ut varje datapunkt samtidigt säga att blåsa

LCD.Clear();

lcd.setCursor(0,0);

LCD.Print ("Blow nu");

lcd.setCursor(0,1);

LCD.Print ("BAC =");

LCD.Print(BAC);

BACvalues [ii] = TBK;

}

beräkna den slutliga BAC ska visas som genomsnittet av värdena över de mellersta tidpunkter

uteslutna slutpunkter eftersom de inte kan att blåsa i början eller slutet

hittade inte behovet av att filtrera eftersom resultaten var mycket stabil

för (int kk = 15; kk < 35; kk ++) {

summa = summa + BACvalues [kk];

}

få den sista BAC ska visas som medelvärdet över relevanta tidsramen

finalBAC = summa/20;

kod för att slå på lysdioderna

om BAC ligger under den lagliga gränsen, slå på den gröna lysdioden

IF(BAC<0.08) {

digitalWrite(greenLEDPin,HIGH);

digitalWrite(redLEDPin,LOW);

}

om BAC inte under den lagliga gränsen, slå på den röda lysdioden

annat {

digitalWrite(greenLEDPin,LOW);

digitalWrite(redLEDPin,HIGH);

}

LCD.Clear();

lcd.setCursor(0,0);

LCD.Print ("Test avslutad");

lcd.setCursor(0,1);

LCD.Print ("BAC =");

LCD.Print(finalBAC);

Delay(10000);

Serial.Print ("sista BAC =");

Serial.println(finalBAC);

}

Delay(1000);

}

Se Steg
Relaterade Ämnen

En fristående Data logga vindmätaren

jag älskar samla in och analysera uppgifter. Jag älskar också bygga elektroniska prylar. Ett år sedan när jag upptäckte de Arduino produkterna, jag omedelbart tänkte, "Jag vill samla in miljödata." Det var en blåsig dag i Portland, OR, så jag be...

Vindmätaren på billiga (lindar hastighet mätaren)

Denna hemlagade konstruktion är lättoch billig, nästan gratis.Αll material använde jag hittade i mitt hus.Nästan alla, eftersom allt jag köpte var behållaren för akvareller.Den grundläggande idén är DC-motor som vridning på grund av vinden producerar...

Vindmätaren...

Hej Karl Instructableshär är min DIY vindmätaren med ett kullager, en cykel hastighetsmätare, aluminiumrör, varmt lim, trä,PVC-rör. Skolprojekt min Son uttryckte det tillsammans. Jag fick alla delar redo.Lätt att göra. Gå nu och göra något. Och Hey H...

En återvunnen regnmätaren för Davis Wizard III

Hur jag lagt till en "Gratis" regnsensor i en eftermiddag.Min Davis 7425 väder guiden III fortfarande hänger på väggen i vardagsrummet, som den har under det senaste decenniet, visar den lokala väder info. Jag fick min station 2003 till salu på...

Antika mätaren Prop bygga

detta är min knytnäve instructable och en del av en större bygga. Jag ville dokumentera dessa steg för referens och för alla att samla idéer.Jag köpte denna mätare med avsikt att bygga en galen vetenskapsman eller Frankensteins lab prop. Som bilden v...

COI - ljus mätaren

Den färdiga produkten använder ljussensorn i Grove Starter Kit Plus för att mäta förändring i ljusintensitet. Den mäter ett startvärde av ljus, och berättar hur ljust eller mörkt det blir bygger på förändring i dess miljö. Detta kan användas opacitet...

Analog stil temperatur mätaren och DataLogger med Intel Edison

I detta instructable du lära dig att ta data från olika sensorer och logga in dem på ett SD-kort, och sedan Visa aktuell temperatur på en servo-driven analog stil mätare. Stort tack till Intel, Instructables och Grove för giveaway!Du behöver:Intellek...

Vindmätaren från CDROM motor och plast påsk ägg halvor

vindmätaren från CDROM motor, och plast påsk ägg halvorJag har en önskan att bygga en eller två små vindkraftverk att ladda bly-syra batterier. För att se om jag har tillräckligt vind att göra det värt, gjorde jag en vindmätare (vind mätanordning) av...

Glukos mätaren fallet och plånbok

Det är allt för lätt att glömma min glukosmätare när jag lämnar huset eller tappar bort den helt och hållet. Genom att skapa ett system för att hysa min glukos mätaren leveranser, mitt kreditkort och ID, och min smarta telefon om behöver vara, jag ha...

Ghost Busters PKE mätaren

Detta är en 3D tryckta PKE MÄTAREN med anpassade elektronik inuti liknande som i filmen; Ghost Busters. Skriva ut detta och använda den för att slutföra din ghost busters stötta uppsättning eller kostym. Att vara en designer, har jag förbättrat desig...

Ställa in en A100LK vindmätaren på en Arduino

Någon tänker installera en vindkraftgenerator, eller ens en hel flock av vindkraftverk, skulle göra klokt att övervaka den föreslagna platsen för minst ett helt år innan spendera ett öre mer på hårdvara. Detta är vad A100LK är utformad för.Det första...

Digital Gauss mätaren

Alla gillar magneter. Spela med den osynliga magiska kraften av permanentmagneter är från alla åldrar.Mixtra med spolar, behöver reläer och många andra magnetiska enheter ibland ett mätverktyg för magnet fältet densitet och Nord- och Sydpolen upptäck...

Livskvalitet mätaren Mk.2 - smartare och anslutna

För ett tag sedan jag skapade en livskvalitet mätare, baserat på ett skämt där jag jobbar. I huvudsak var det bara en LED version av whiteboard version vi började med. När du arbetar på den första iteration jag visste att det fanns en hel del sätt at...

Pissoar Splash fara mätaren

Här på Instructables HQ på San Franciscos Pier 9 hade Herrarnas toalett ett problem.Viss pier kamrater kvar som fattiga precision pee-ers. Som är fotograferad ovan. (Min kursivering).Lösning: Positiv-grupptryck för korrekt kissar hållning. Pissoar Sp...

Arduino Bac kalkylator

Detta är en instructable om hur man skapar en enkel krets utnyttja en MQ-3 alkohol sensor för att mäta blodalkoholkoncentration. Vi kommer att använda arduino kod och en arduino shield lcd för att visa den beräknade BAC nivån.Steg 1: Delar + verktyg...

Distansera mätaren

avståndsmätare är en billig och effektiv gadget som låter dig mäta avståndet till ett objekt. Enkelt och roligt att bygga! Låt oss bygga den.Steg 1: Steg 1. Komponenter och verktygDe komponenter som anges är utbytbara beroende på dina inställningar.1...

Elektronik tips - mätaren Probe beskyddare

här är ett enkelt tips för att undvika kostsamma misstag när man mäter värden på en påslagen ombord: täcka upp din mätare sonder!Mätaren sonder är Åh så blanka och ledande men de också vilja glida som rör andra delar som du inte vill att röras. Denna...

MÄTAREN står

DUNKA... min mätare föll över igen.Jag arbetade i en butik med sex andra personer.Och varje dag detta hände trots attvissa mätare har en junky tråd stå tillHåll mätaren upprätt. Men försök att ändraskalor eller dra för hårt på leadsoch duns. För tret...

Påskägg vindmätaren (vind hastighet mätare)

lätt hemlagad Vinddataanläggning, detta går ihop snabbt om du har de delar liggandes. Detta är i grunden en mini vindkraftgenerator; spinning motorn producerar en ström som en multimeter läser.Inspirationen till projektet kommer från http://www.other...