Capacitieve vloeistof niveau Sensor (12 / 14 stap)

Stap 12: Firmware


Het programmeren van de barebone is vrij eenvoudig. Alles wat u nodig hebt is een Arduino Uno met de microcontroller verwijderd (het zal de barebone zien als de controller).

http://Arduino.CC/en/Main/standalone

http://Arduino.CC/en/tutorial/ArduinoToBreadboard

Ik gesoldeerd een kop op de 5V, grond, reset, rx en tx, zodat ik kan aansluiten van mijn sensor Arduino met een Arduino uno met de Atmega chip verwijderd. Op deze manier ik kan de manier waarop ik zou met elke andere Arduino Arduino program.

U moet ook de capacitiveSensor bibliotheek voor de Arduino IDE installeren: http://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense

Uploaden van de firmware

De firmware kan gedownload worden in de bijlagen. De CLS_Sensor_firmware is de firmware die moet worden geüpload naar de capacitieve niveausensor. De CLS_sensor_reader firmware kan worden geüpload naar een ander Arduino en gebruikt om te communiceren met de sensor. De lezer Arduino moet worden aangesloten op de sensor via I2C, met 2 4k7ohm pull-up weerstanden. In de volgende stap zal alle opdrachten die kunnen worden gebruikt worden uitgelegd. U kunt ook stukjes code uit de lezer toe te voegen aan uw eigen code, zodat u gemakkelijk kunt instellen en lees de sensor zonder de functies om zelf te schrijven.

Hoe de code werkt

De sensor werkt vrij ongecompliceerd. Elke N seconden hij neemt nota van de tijd op de timer van de millis(). Dan begint het 100 CapacitiveSensor cycli. Vervolgens meet de tijd opnieuw en wordt afgetrokken van de begintijd van de eindtijd. Dit is de ruwe waarde waarbij de sensor het vloeistofniveau vergelijkt. De sensor maakt ook een 0-255 waarde en een afstand in mm van de ruwe waarde, door te vergelijken met de ingestelde minimale en maximale waarde.

Waarden worden opgeslagen in EEPROM te laten niet-vluchtig. Wanneer de sensor bevoegdheden op, zal het de waarden van de EEPROM leest en start meten.

Ook heeft de sensor een I2C-lijn om te communiceren met een model microcontroller. De I2C adres van de sensor is 42. De kapitein communiceert met de sensor op de volgende manier.

 //master request example Wire.beginTransmission(42); //open communication Wire.write(30); //tell the sensor what to do (30 = send raw value) //additional writes can happen in case of 60. Wire.endTransmission(); //end the transmission Wire.requestFrom(42,2); //request 2 bytes from the sensor if(Wire.available()) // if two bytes were received { readValue[0] = Wire.read(); //read the first byte readValue[1] = Wire.read(); //read the second byte } 

De opdrachten die kunnen worden verzonden naar de sensor zijn:

  • 10: verzenden 0-255 niveau waarde (het resultaat van 1 byte);
  • 20: Stuur afstand in mm (geeft als resultaat 2 bytes, eerst de hoge byte, dan de lage byte);
  • 30: rauwe maatregel verzendingstijd (resultaat 2 bytes, eerst de hoge byte, dan de lage byte);

  • 40: instellen van de sensor-waarde van de 0% (aanvullende gebeurt er niets);
  • 50: instellen van de sensor-waarde van de 100% (aanvullende gebeurt er niets);
  • 60: de lengte van de sensor in de eenheid die u wilt instellen (2 extra bytes naar verwachting worden verzonden dat geeft u de lengte van de sensor uw gekozen eenheid)
  • 70: Lees de lagere limiet ruwe waarde instellen (2 bytes als resultaat gegeven (hoge byte eerste) met de set lagere ruwe waarde);
  • 80: Lees de ruwe waarde van ingestelde bovengrens (2 bytes als resultaat gegeven (hoge byte eerste) met de ingestelde bovenste ruwe waarde);

  • 90: Lees de lengte instellen sensor (2 bytes als resultaat gegeven (hoge byte eerste) met de ingestelde lengte in de eenheid u geplukt)

Een belangrijke bug in Wire.h

De draad bibliotheek is een nieuwsgierig bug daarin heeft als 2 Arduino van communiceren. Wanneer de kapitein een Europese naar de slaaf verzonden heeft, kan de slaaf niet sturen terug op deze manier:

 byte sendValue1; byte sendValue2; Wire.write(sendValue1); Wire.write(sendValue2); 

In plaats daarvan moet het terugsturen de waarde op deze manier:

 byte sendValue[2]; Wire.write(sendValue,2); 

Zoniet gedaan op deze manier, de kapitein ziet alleen de laatste byte verzonden, en alle anderen worden genegeerd. Het lijkt misschien eenvoudig, maar deze kwestie hier kostte me 3 dagen om erachter te komen.

!!! 3 DAGEN!!!

(Als het mogelijk was zou ik ook hoofdstad 3 gebruiken).

Gerelateerde Artikelen

Arduino dual ultrasoon vloeistof niveau meter met geïntegreerde website

Arduino dual ultrasoon vloeistof niveau meter met geïntegreerde website

dit project kunt u controleren van het niveau van 2 containers gevuld met vloeistof. De niveaus kunnen worden weergegeven op een website. Het onderstaande voorbeeld heeft een sensor aangesloten via de kabel, en een andere sensor draadloos aangesloten
Vloeibare niveau Sensor

Vloeibare niveau Sensor

ik wilde maken van een Water-niveau controle sensormaar van niet contact niet elektronische & goedkope!Nam Plastic handpomp, verwijderd Rubber ' o '-ring van de zuigerDus nu beweegt de zuiger vrij zonder wrijvingKnippen van vloeibare container en vas
Internet van dingen Toilet gebeurtenissen upload naar de Cloud (Raspberry PI)

Internet van dingen Toilet gebeurtenissen upload naar de Cloud (Raspberry PI)

Internet van dingen Toilet spoelen gebeurtenissen en toiletpapier roll verandering out evenementen naar Google Drive werkblad geüpload.Hoe werkt het? – Een aquarium vloeibare niveausensor vlotterschakelaar detecteert WC tank niveau; blozen verlaagt h
PPlanter urinoir, wasbak, + planter!

PPlanter urinoir, wasbak, + planter!

De PPlanter is een snel inzetbare, herconfigureerbare openbare urinoirs en wastafel die gebruikmaakt van modulaire biofilters voor de behandeling van urine- en afvalwater. Een netwerk van sensoren voor het geautomatiseerde toezicht en een responsieve
Controle van een magneetventiel met Scratch

Controle van een magneetventiel met Scratch

USB-controle van een magneetventiel met behulp van Lego Wedo robotica en "Scratch" programmeringR. D. Goodwin, W. Lecorchick, O. Ouatarra, Siderits, P. Mazari, C. RimmerMagneetafsluiters openen en sluiten met lage spanning RelaisWe illustreren h
Hoe vervang ik een power steering pump

Hoe vervang ik een power steering pump

zodat u op een ochtend klaar om de kinderen naar school te rijden en om te werken het hoofd wakker. De zon is, en de honden zijn geblaf. Als u tijdens het wandelen tot aan de auto, uw zoon zegt, "Papa! Kijk helemaal dat water onder de auto! "--
Handige trucs aflevering 9

Handige trucs aflevering 9

handige trucs 9: Oodles van willekeurige trucs! Meer zal willekeurig worden toegevoegd!Om te zien nog meer handige trucs, check out de rest van de saga opHandige trucs 8: Eiland handige trucsen handige trucs 7: fiets Mods en projectenen handige trucs
Meten waterpeil met ultrasone sensor

Meten waterpeil met ultrasone sensor

Voor mijn volgende grote project (geautomatiseerde installatie drenken systeem) was ik behoefte aan water niveau meter hebben. Ik was kiezen uit de contact- en contactloze methoden voor het meten van vloeistofniveau in de tank. Contactwijze zijn resi
Afstandsmeting met behulp van ultrasone sensor en de Arduino

Afstandsmeting met behulp van ultrasone sensor en de Arduino

HI iederIk heb onlangs mijn eerste Aduino, hier ben ik gonne toont u mijn eerste project die is afstandsmeting met behulp van ultrasone sensor en de Arduino, kunt u dit project veel mogelijke toepassingen zoals1-vloeistof niveau2-object detectie3-afs
Arduino AMS5812_0050-D-B Druk & temperatuur Sensor Tutorial

Arduino AMS5812_0050-D-B Druk & temperatuur Sensor Tutorial

AMS5812 is versterkt druk met analoge en digitale uitgangen een hoge precisie sensor met een spanning van de analoge uitvoer en digitale I2C-interface. Het combineert een piºzoresistieve sensing element met een signaal conditioning element voor de we
Raspberry Pi grond vochtigheid Sensor

Raspberry Pi grond vochtigheid Sensor

Landbouw verbruikt tussen 80-90% van alle zoetwater in de Verenigde Staten. Een gemakkelijke manier om het besparen van water in de agrarische sector is het installeren van een grond vochtigheid sensor. Bodem vocht sensoren meten de hoeveelheid water
Sensor van de nabijheid met een boord van Mediatek Linkit interfacing

Sensor van de nabijheid met een boord van Mediatek Linkit interfacing

In dit Instructable u zal zitten kundig voor scherpe IR Proximity Sensor met Mediatek Linkit een interfacekaart.Een sensor van de nabijheid is een sensor die kan detecteren van de aanwezigheid van nabijgelegen objecten zonder enig fysiek contact.Een
Automatische Switching van licht met behulp van de sensor van de nabijheid van de IR

Automatische Switching van licht met behulp van de sensor van de nabijheid van de IR

Dit is een van de meest eenvoudige methode voor het inschakelen en uitschakelen licht van een kamer. De methode maakt gebruik van twee nabijheidssensor gekoppeld aan de deur die een s een teller fungeert of een persoon heeft kwam in een kamer of niet
Multifunctionele hydrocultuur en bodem tuinieren oplossing

Multifunctionele hydrocultuur en bodem tuinieren oplossing

Ik heb al een soortgelijke gepubliceerd instructable en dit is een beperkte versie van hetzelfde omdat het voelde een beetje te ingewikkeld voor sommigen. Hier gaan we...IntroductieVeel mensen denken over het starten van tuinieren als een hobby en so