Capteur de niveau capacitif Fluid (12 / 14 étapes)

Étape 12 : Firmware

Le barebone de programmation est assez simple. Tout ce dont vous avez besoin est un Arduino Uno avec le microcontrôleur supprimé (il verra le barebone comme contrôleur).

http://Arduino.cc/en/main/standalone

http://Arduino.cc/en/Tutorial/ArduinoToBreadboard

J’ai soudé un en-tête au 5V, sol, réinitialisation, rx et tx, donc je peux me connecter Arduino de mon capteur à un Arduino uno qui a la puce Atmega supprimée. De cette façon je peux programmer l’Arduino la façon dont je le ferais avec n’importe quel autre Arduino.

Vous devrez également installer la bibliothèque capacitiveSensor à l’IDE Arduino : http://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense

Télécharger le firmware

Le firmware est téléchargeable dans les pièces jointes. Le CLS_Sensor_firmware est le firmware qui a besoin d’être téléchargés sur le capteur de niveau capacitif. Le firmware de CLS_sensor_reader peut être transféré à un autre Arduino et utilisé pour communiquer avec la sonde. Le lecteur Arduino doit être raccordé à la sonde à travers l’I2C, avec 2 résistances de pull-up 4k7ohm. Toutes les commandes qui peuvent être utilisés seront expliquées dans l’étape suivante. Vous pouvez également utiliser des extraits de code à partir du lecteur d’ajouter à votre propre code, vous pouvez facilement définir et lire le capteur sans avoir à écrire les fonctions vous-même.

Comment fonctionne le code

Le capteur fonctionne assez simple. Toutes les N secondes, il consigne l’heure sur l’horloge de millis(). Puis il commence à 100 cycles de CapacitiveSensor. Ensuite, il mesure le temps nouveau et soustrait de l’heure de début de l’heure de fin. Il s’agit de la valeur brute par lequel le capteur compare le niveau de liquide. Le capteur permet également une 0-255 valeur et une distance en mm de la valeur brute, en le comparant à l’ensemble minimal et la valeur maximale.

Valeurs sont stockées en EEPROM pour les rendre non volatile. Quand le capteur se mette, il va lire les valeurs de l’EEPROM et commencer à mesurer.

Le capteur a également une ligne I2C pour communiquer avec un microcontrôleur maître. L’adresse I2C du capteur est 42. Le capitaine communique avec le capteur de la manière suivante.

Les commandes peuvent être envoyées à la sonde sont :

  • 10 : une valeur de niveau d’envoi 0-255 (retourne 1 octet) ;
  • 20 : envoyer la distance en mm (renvoie tout d’abord 2 octets, l’octet haut, puis l’octet de poids faible) ;
  • 30 : envoi des temps de mesure brute (renvoie tout d’abord 2 octets, l’octet haut, puis l’octet de poids faible) ;

  • 40 : valeur de 0 % de capteur (supplémentaires ne se passe rien) ;
  • 50 : capteur 100 % valeur (supplémentaires ne se passe rien) ;
  • 60 : définir la longueur du capteur dans l’unité de votre choix (2 octets supplémentaires devraient être envoyées qui spécifient la longueur de la sonde de votre unité choisie)
  • 70 : lire la valeur brute set pour la limite inférieure (retourne 2 octets (octet haut premier) avec le jeu de baisser en valeur brute) ;
  • 80 : lire la valeur brute de la limite supérieure fixée (retourne 2 octets (octet haut premier) avec la valeur brute supérieure) ;

  • 90 : lire la longueur de l’ensemble capteur (retourne 2 octets (octet haut premier) la longueur définie dans l’unité que vous avez choisi)

Un bug important dans Wire.h

La bibliothèque de fils est comporte un bug curieux lorsque l’Arduino 2 communiquent. Lorsque le capitaine a envoyé un requestFrom à l’esclave, l’esclave ne peut pas renvoyer cette façon :

Au lieu de cela, il doit renvoyer la valeur de cette façon :

Si ce n’est fait de cette façon, le maître ne verrez que le dernier octet envoyé, et tous les autres sont ignorés. Cela peut sembler simple, mais cette question ici m’a coûté 3 jours pour comprendre.

!!! 3 JOURS!!!

(S’il était possible que j’utiliserais aussi capital 3).

Articles Liés

Capteur de niveau de la piscine

Capteur de niveau de la piscine

Il y a quelques années, nous avons emménagé dans une maison avec une belle petite piscine. C'est un vieux, construit quelque temps dans les années 70. J'ai remplacé les pompes et mis à jour le contrôleur de la piscine mais maintien de la piscine à un
Capteur de niveau du réservoir eau distance V2.0

Capteur de niveau du réservoir eau distance V2.0

Ce projet est un re-démarrage d'un projet de 2 ans pour accomplir la même chose. L'objectif est d'avoir un capteur compatible internet, monté sur un réservoir d'eau qui mesure la quantité d'eau dans le réservoir et il enregistre en ligne. Lorsque le
Comment utiliser le capteur de niveau d’eau - Arduino Tutorial

Comment utiliser le capteur de niveau d’eau - Arduino Tutorial

Dans ce tutoriel, vous apprendrez comment utiliser un capteur de niveau d'eau avec la carte de Arduino uno.Ce module est conçu principalement pour les amateurs de bricolage et de leur fournir un système de détection de niveau d'eau peu coûteux et fac
Arduino - alarme inondation - à l’aide d’un capteur de niveau d’eau Simple

Arduino - alarme inondation - à l’aide d’un capteur de niveau d’eau Simple

Salut tout le monde! Aujourd'hui, j'ai fait une alarme inondation simple avec un capteur de niveau d'eau. Je ne vendent pas ces capteurs sur mon site car ils ne durent très longtemps quelle mesure eau j'ordonnerai or enduit ceux et les tester pendant
Module de capteur de niveau d’eau pour Arduino AVR bras STM32 STM8

Module de capteur de niveau d’eau pour Arduino AVR bras STM32 STM8

Félicitations à l'équipe de ICStation ! Ils ont développé ce merveilleux module de capteur de niveau d'eau de gros efforts. Ce module avec la petite taille et rentable est facile à utiliser. Dans cet article, nous allons utiliser l'oscilloscope à mém
Capteur de niveau d’eau à ultrasons Arduino pour machines à café Espresso

Capteur de niveau d’eau à ultrasons Arduino pour machines à café Espresso

J'ai une machine à café expresso de très bon mais assez vieux avec un réservoir d'eau amovible, le problème est qu'il ne fournit pas un voyant de niveau d'eau bas, donc je ne peux pas savoir à ce niveau avant de manquer d'eau ! OU au moins sans ouvri
Construction d’un capteur de proximité capacitifs à l’aide de peinture nu

Construction d’un capteur de proximité capacitifs à l’aide de peinture nu

dans ce tutoriel, nous allons faire un capteur de capacité simple à l'aide d'un tampon de peinture nu, un Arduino et une résistance. Lorsque correctement construit, ce capteur peut détecter la présence d'une personne de jusqu'à 300 mm et peut fonctio
Capteur de niveau d’eau de Twitter Wi-Fi

Capteur de niveau d’eau de Twitter Wi-Fi

IntroductionVous avez la plomberie intérieure ? Ouais. Vous avez de l'eau de ville ? Nope. Alors vous êtes au bon endroit. Si vous avez un puits, alors vous avez probablement un réservoir d'eau. Ce projet est un moyen de mesurer la quantité d'eau est
Capteur de niveau d’eau

Capteur de niveau d’eau

l'eau interrompt parfois où j'habiteNous avons donc un réservoir sur le toitmais parfois l'eau s'interrompt pendant une longue période et nous utilisons l'eau, mais nous ne savons pas que c'est du réservoiret chaque fois que l'eau coupe que je dois o
Mesure du niveau eau avec capteur à ultrasons

Mesure du niveau eau avec capteur à ultrasons

Pour mon prochain gros projet (arrosage système mécanisé) j'ai besoin d'avoir le compteur de niveau d'eau. Je fus le choix de contact et sans contact méthodes pour mesurer le niveau de liquide dans le réservoir. Moyens de contact sont méthode résisti
Construire un capteur capacitif liquide

Construire un capteur capacitif liquide

un sponsor liquid capacitif repose sur le fait la la capacité ou la charge entre 2 plaques de métal va changer (dans ce cas augmentation) selon quel matériau est entre eux.Cela nous permet de créer un capteur de niveau qui est sûr pour une utilisatio
Activer la mise à niveau automatique pour votre imprimante 3D avec un capteur inductif (Firmware Marlin)

Activer la mise à niveau automatique pour votre imprimante 3D avec un capteur inductif (Firmware Marlin)

Ce Instructable couvre la configuration de mise à niveau automatique pour votre imprimante 3D utilisant le micrologiciel Marlin typique de nombreuses imprimantes 3D tels que les kits de Makerfarm et d'autres qui utilisent des rampes 1.4 + Arduino bas
CONTRÔLEUR de niveau d’eau automatique 1 $

CONTRÔLEUR de niveau d’eau automatique 1 $

Bonjour les amisAujourd'hui j'ai suis de retour avec un autre projet appelé $1 régulateur de niveau d'eau.C'est un circuit de commutation automatique permettant de contrôler une pompe à eau AC. Fonctionnement de ce circuit est simple.wen que le nivea
Mise à niveau du lit de chaleur des Ultimaker Original

Mise à niveau du lit de chaleur des Ultimaker Original

Il s'agit d'un projet que j'ai expérimenté récemment et j'ai écris cette instructable afin je l'espère aider toute personne qui envisage de faire eux-mêmes au cours de quelques pièges, j'ai vécu. Cela étant dit, bien que mon domaine d'études est GENI