VDO Oilpressure sensor för Arduino (7 / 8 steg)
Steg 7: Kopiera koden och ladda det i din Arduino
/*
Oliepressuresensor VDO 0-5 bar med strömbrytare för Yanmar 3GM 30 båt motor först tog en manometer fot pumpa däcken och mappas trycket kontra ohm. Lägg den i en tabell. Jag kopplade upp en kompressor till min tirepumping pistol med en pice waterhose och två klämmor. Jag började vid 5 bar och låt luften ut varje två tiotals bar mindre och skrev ohm i en tabell. På min arbetsbänk kopplade jag upp en potentiometer hitta de digitala värden som jag fick i gengäld. Lite knepigt. LCD-skärmen och seriella övervaka där bita varandra. Liten bit fidling om. Men det fungerade. Jag satte RAWADC värdena i min tabel och sätta i siffrorna på if, else-sats i koden nedan.
Strömförsörjning är 5V regleras. Jag fick reda på att den arduino droped befogenhet att 4, 5V. Jag började att prova exemplet på http://secrettweakerpad.blogspot.nl/2012/08/contr... Jag använde detta schema för att arbeta från. Hans equeation fungerade inte för mig. Avläsningarna där långt borta. Probebly min sensor har diverend värden. Schematiskt fungerade så jag behöll det. Också den rutin som han använde jag anpassas och ändras. Tack RenaissanceMan för att dela.
Sökte på internet och hittade http://secrettweakerpad.blogspot.nl/2012/08/contr... från Ken Kallsen. Tack för att dela. Används i flytande christal exempel för att starta medföljande bij arduino gränssnittet. Kopieras om annat-funktionen och till min förvåning det fungerade första gången.
Krets:
* LCD RS stift till digital stift 12
* LCD aktivera stift till digital stift 11
* LCD D4 stift till digital stift 5
* LCD D5 stift till digital stift 4
* LCD D6 stift till digital stift 3
* LCD D7 stift till digital stift 2
* LCD R/W pinnen till jord
* LCD VSS pinnen till jord
* LCD VCC stift till 5V
* 10K motstånd:
* avslutar till + 5V och jord
* torkar till LCD-VO pin (stift 3) *
* Jag använde en spänningsregulator som beskrivs på http://secrettweakerpad.blogspot.nl/2012/08/contr... från s. Marian häxan fungerade bra
* Igen tack för. Jag la en grön ledde med en 150 ohm resistor till se om jag fick makten.
* MCP1755 spänningsregulator.
* Electrolitic kondensator 1 Uf och 10Uf
* Grön Led * resistor 150 ohm
*
* Används A2 som readanalog port.
* Jag använde för spänningsavdelaren ett 1000Ohms motstånd rakt på de 5V och sensorn på den negativa sidan.
* Middlepoint jag leder till A2 analog port.
http://secrettweakerpad.blogspot.nl/2012/08/Contr...
* Göra säker du par minus från tillsynsmyndigheten och arduino tillsammans
* Jag tänker använda 12V från min båt för att mata arduino och sensorn.
* Spänningsregulatorn blir mouted nära motorblocket att tillhandahålla 5V till sensorn.
Intension är att montera en tempeture sensensor för avgaser, kyla vatten sensor, Engine bay tempeture sensor och oilpressure sensor och Visa den på en GLCD skärm.
Detta kan användas för många sensorer bara karta ut värdena och du är bra att gå.
Här är det standard Cristal display ord som används i exemplet området.
Bibliotek ursprungligen lagt 18 Apr 2008 av David A. Mellis bibliotek uppdaterad 5 juli, 2009 av Limor Fried (http://www.ladyada.net) exempel lagt till 9 juli 2009 av Tom Igoe modifierad 22 Nov 2010 av Tom Igoe
Denna exempelkod är offentlig.
http://www.Arduino.cc/en/tutorial/LiquidCrystal
*/ //----------------------------------------------------------
#include < LiquidCrystal.h
inkludera bibliotek koden liquidcristal:
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
float OilPressure; Variabel för beräkning av oilpressure
//-----------------------------------------------------------------
void setup() {
LCD.BEGIN (16, 2); Ange den LCD antal kolumner och rader:
LCD.Print("Oliedruk"); Skriv ut ett meddelande till LCD-skärmen.
Serial.BEGIN(9600);
}
//------------------------------------------------------------------
void loop() {
OilPressure = (float(OilPressure1(analogRead(2)));
lcd.setCursor(0,2); Börja skriva ut på den andra raden.
LCD.Print(float(OilPressure)); Pints oilpressure display
LCD.Print ("BAR").
}
//---------------------------------------------------------------------
OilPressure1(float RawADC) {float
float tryck; Lokal variabel. Endast används i denna rutin.
Serial.println(RawADC);
IF(RawADC < 30) tryck = 0,0;
annars om (RawADC < 62) tryck = 0,4;
annars om (RawADC < 72) tryck = 0,6;
annars om (RawADC < 78) tryck = 0,8;
annars om (RawADC < 86) Tryck = 1,0;
annars om (RawADC < 95) Tryck = 1,2.
annars om (RawADC < 102) Tryck = 1.4;
annars om (RawADC < 105) Tryck = 1,6;
annars om (RawADC < 112) Tryck = 1,8;
annars om (RawADC < 117) tryck = 2.0;
annars om (RawADC < 125) tryck = 2.2.
annars om (RawADC < 128) tryck = 2,4;
annars om (RawADC < 137) tryck = 2.6;
annars om (RawADC < 142) tryck = 2,8;
annars om (RawADC < 147) tryck = 3.0;
annars om (RawADC < 152) tryck = 3.2.
annars om (RawADC < 159) tryck = 3.4;
annars om (RawADC < 166) tryck = 3.6;
annars om (RawADC < 171) tryck = 3,8;
annars om (RawADC < 176) tryck = 4,0;
annars om (RawADC < 181) tryck = 4.2;
annars om (RawADC < 183) tryck = 4,4;
annars om (RawADC < 188) tryck = 4,6;
annars om (RawADC < 195) tryck = 4,8;
annars om (RawADC < 198) tryck = 5.0;
Delay(1000); Bara en fördröjning annars displayen blinkar
Tryck = tryck * 14.7; konvertera från bar till PSI
returnera tryck; Återgår till den andra raden i loop funktion.
}