Mäta salthalt med AC
Mäta den salt koncentrationen med AC utifrån konduktiviteten
För kursen mätningar för vatten vid TU Delft görs en enhet för mätning av salt koncentrationen baserat på conductivityen av vattnet med en Arduino UNO R3. Denna artikel ger bakgrunden teori om principen om elektrisk conductivity mätning och även ett steg för steg system hur man bygger en liknande anordning.
Bakgrund teori
Ett salt är en kemisk bindning mellan positiva och negativa joner. Joner är positivt eller negativt laddade molekyler. Joner för att leda elektricitet i vatten. Detta innebär att rent vatten (H2O) icke-ledande. På annat sätt innebär det att mer salt löses upp, desto bättre vattnet bedriver, således bevattna levererar en lägre resistenta. Denna enhet använder variationen av motståndet av vattnet för att bestämma upplöst koncentrationen av salt.
Enheten
Den här enheten använder växelström (AC) i 2 barer som är anslutna till vattnet. AC används för att minska de redox reaktion på barer att få mer tillförlitliga resultat. Dessutom utövas mätning av 2 andra barer som också är i kontakt med vattnet, men inte i direkt kontakt med barer med AC för mer kontinuerlig och tillförlitlig mätning.
På grund av att AC används finns det en diod brygga infördes som visas i figur 1. Denna diod brygga får AC som indata och konverterar den till en likström (DC) som utgång. Omvandlingen är nödvändigt för mätningarna. Enheten mäter kompletterande utan konvertering. Till exempel när 5 volt levereras i första riktningen 3 volt kommer att mätas. I den andra riktningen 5 – 3 = 2 volt kommer att mätas.
För att Visa mätningen på Arduino kan man använda en RGB-LED för att visa i vilket intervall mätning ligger. I det här exemplet används 3 intervaller. Dessa kan kalibreras med 4 mätning. Första åtgärden med demineraliserat vatten. Mät sedan 3 gånger med kända koncentrationer. Detta är din kalibrering.
Bygga enheten
Kraven för att bygga denna apparat är listade nedan.
· Arduino UNO R3
· Skärbräda
· 1 x 35v 470μf Rubycon kondensator
· 4 x 1N007 dioder
· 1 x 100 kΩ motstånd
· 1 x 100 Ω motstånd
· 3 x 220 Ω motstånd
· 1 x RGB-LED
· 10 x manliga hoppare ledningar
· 4 x 120 mm Ø 5 mm rostfritt stål
· 4 x kabel 5 mm2 med kontakt
· 12 x mutter Ø 5 mm
· 1 x 180 mL burk
Barer - när du har de krav du kan börja bygga del som har kontakt med vattnet. Måste man bifoga barer i locket som visas i figur 2.
Barer 1 och 2 är ansluten till AC. Bar 1 är ansluten till bakbord och i serie med ett motstånd 100 Ω. Efter motståndet går en jumper tråd till digital port 13. Bar 2 är direkt ansluten till digital anslutning 12. Det här är AC kretsen.
Diod bron -bron diod visas i figur 3. Punkterna A sv B i figur 1 och 3 är konsekventa. På dessa punkter är respektive hoppande trådar av barer 3 och 4 anslutna till bakbord.
Mätning – som sagt hoppningen kablar är anslutna i punkterna A och B. Från punkt C reser nuvarande till kondensatorn. På denna punkt konverteras nuvarande till likström. Det är därför mätning görs här. För att göra denna mätning pluspolen är ansluten till den analoga porten (A0) på Arduino med en hoppande tråd.
Marken - efter att mäta strömmen färdas genom kondensatorn till punkt D. Från punkt D det reser till punkt A eller B, beroende av situationen, och tillbaka till port 12 eller 13, beroende av vilken som är grunden i det ögonblicket.
Både situationen A, i vilken port 13 är låg och B, i vilka 12 är låg således marken, visas i figur 4.
RGB-LED – The RGB-LED är separat ansluten på Arduino som visas i figur 5 och 6. Anoderna är anslutna till digitala ports5, 6 och 7. Katoden är ansluten till marken.
Arduino koden
Koden bygger på Arduino exempel > 01. grunderna > ReadAnalogVoltage men förlängs för att realisera AC, att mäta efter 2 sekunder och visa resultatet som en viss färg. Dessa 3 delar avskiljs i skriptet.
booleska flipFlop = sant;
int tw = 10,0;
int tm = 2000.0;
int rött = 7.
int grön = 6;
int blå = 5;
Ogiltiga inställningar () {
pinMode (13, OUTPUT);
pinMode (12, OUTPUT);
pinMode(RED,OUTPUT);
pinMode(GREEN,OUTPUT);
pinMode(BLUE,OUTPUT);
Serial.BEGIN(9600);
}
void loop() {
Växelström
om (flipFlop == true) {
digitalWrite 13, hög.
digitalWrite 12, låg.
flipFlop = false;
}
annat {
digitalWrite 13, låg.
digitalWrite 12, hög.
flipFlop = sant;
}
Mäta efter 2 sekunder
om ((millis() % tm) < 20) {
int sensorValue = analogRead(A0);
flyta spänning = sensorValue * (5.0 / 1023.0);
Serial.println(Voltage);
Delay(20);
Visa resultatet som en viss färg
om (spänning < 2.5) {/ / koncentration < 1 gr / 100ml röd
digitalWrite(RED,HIGH);
digitalWrite(GREEN,LOW);
digitalWrite(BLUE,LOW);
}
om (spänning > 2.5 och spänning < 3,9) {
koncentration mellan 1 och 2 gr / 100mL (kranvatten i Nederländerna) grön
digitalWrite(RED,LOW);
digitalWrite(GREEN,HIGH);
digitalWrite(BLUE,LOW);
}
om (spänning > 3,9) {/ / koncentration > 2 gr / 100ml blå
digitalWrite(RED,LOW);
digitalWrite(GREEN,LOW);
digitalWrite(BLUE,HIGH);
}
}
}
Datum: 28-11-2014
Författare: Jef Vleugels & Grigor Ayvazyan