Arduino/App contrôlée Desk Light (4 / 6 étapes)

Étape 4: Arduino Code

Comme avec le code App j’aborderai cela brièvement...

Tout d’abord, je place tous mes variables, affectant les capteurs et les LED aux broches corrects. La sortie des capteurs à effet hall est lues à l’aide de la fonction analogRead, donnant une valeur comprise entre 0 et 1023. Comme décrit précédemment, il génère la moitié lorsque aucun aimants ne présent, donc environ 500. J’utilise faibles et variables de la gâchette haute pour me permettre de régler facilement quand on sait la rondelle est au-dessus du capteur.

Les neopixels exige une bibliothèque afin que les de définie ici...

L’installation de Sub démarre les feuilletons, pour le Micro le Rx/Tx broches (bluetooth) utilisent Serial1... Les broches sont alors définis pour être entrées ou sorties et ensemble de LED sur off.

Maintenant, c’est la boucle principale...

Cette première section vérifie si toutes les données sont reçues de la Serial1.available() app. sont lire le numéro de série et obtenir le nombre d’octets dans la chaîne. Si cela de > 0 je sais datas entrant.

Si vous vous souvenez, toutes les chaînes que j’envoie de l’App terminent par un point d’interrogation... c’est à dire (Bright100)?

J’utilise la fonction .readStringUntil pour lire les données sérielles jusqu'à le point d’interrogation (Bright100) et définissez la variable BTstring à cela. J’ai vérifier si BTstring se termine par un ')' pour s’assurer que les commandes complètes sont reçues. Si elles sont, la boucle BluetoothProgram est dit... cela est décrit plus bas...

Ce prochain bit contrôle l’alarme de l’aube. Essentiellement si l’alarme est activée et que le temps est correct puis il va commencer la décoloration par les LED. En raison de le œil humain percevoir la lumière logarithmique est mieux de faire toute sorte de fondu LED hauts/bas avec une courbe exponentielle et non linéaire. D'où une équation est de conduire les valeurs PWM...

Pour éviter la rondelle interférant avec contrôle de l’application, il obtient désactivé lorsque vous utilisez l’application. Pour réactiver la rondelle, vous devez déplacer le produit hors tension pendant 5 secondes... Ce morceau de code vérifie d’abord si tous les capteurs sont sortie une valeur d’état d’équilibre (sans aimant) et puis démarre une minuterie. 5 secondes une fois terminée la variable BTinControl a la valeur retour à false.

Le code pour la rondelle maintenant... Tout d’abord les capteurs doivent être lus.

Si la lumière est actuellement désactivé, il vérifiera si les capteurs sont au-dessus ou dessous les points de déclenchement, c’est à dire la rondelle a été placé sur l’arc. Si elle est alors cela disparaîtra vers le haut de la LED blanche d’à votre dernier réglage peu importe où vous le placez.

Pour maintenir ensemble les LED à votre dernier réglage au lieu de mettre à jour les valeurs associées à quelque capteurs son déclenchement, la variable MovedSinceStandby est définie sur false. Fondamentalement, ce bit de code suivant vérifie si vous avez déplacé la rondelle de sa position initiale par un certain...

Si vous déplacez la rondelle le « MainProgram » est appelée pour mettre à jour le temp de luminosité/couleur. Cela est décrit plus bas.

Le dernier morceau de cette boucle principale vérifie si la rondelle a été placée sur la mise en veille de dock - est le capteur 12 lire une valeur au-dessus/au-dessous d’un point de déclenchement. Dans l’affirmative, il s’estompe le LED vers le bas...

La boucle de bluetooth :

Comme indiqué ci-dessus, lorsque les données sont reçues par l’intermédiaire de bluetooth, la chaîne est lue. Maintenant, nous avons besoin de vérifier ce que dit cette chaîne...

Toutes les chaînes en dehors de la luminosité, la couleur temp et RGB sont assez facile à traiter. Vous vérifiez si BTstring est égal au texte envoyé depuis l’application.

Si vous vous souvenez, chaque fois que vous modifiez des écrans dans l’application, il va envoyer une commande de bluetooth. Ici nous questionner pour cela et certaines variables la valeur true ou false afin que nous sachions que l’écran, vous êtes sur.

Avis à la fin de chaque section, que j’ai mis la variable BTinControl à true et effacez la valeur BTstring.

Lorsque vous appuyez sur le bouton d’alimentation dans l’application elle s’estompera les LED vers le haut ou vers le bas. Les variables définies ci-dessus pour quel écran vous êtes sur servent à décider si c’est le RGB ou blanc LED de contrôle...

Luminosité, température de couleur et RGB, j’ai besoin de lire les chaînes d’une manière légèrement différente. Parce que la partie numéro de la chaîne va changer, je me demande si la chaîne commence par un des identificateurs pas la chaîne complète, il suffit donc (Bright ici...

J’ai maintenant besoin de séparer la valeur de la luminosité réelle de la chaîne. Le format de la chaîne envoyée de l’App est (Brightvaleur) donc je sais donc la valeur de luminosité se situera entre le ' t 'et le')'. La position de ' t ' restera constante, il sera toujours le 7ème caractère dans la chaîne. Mais parce que la valeur de luminosité peut être comprise entre 10 et 100 la position de la ')' va changer. J’utilise la commande .indexOf travailler où la ')' est, quel caractère il est et que vous pouvez puis utiliser la commande de .substring pour lire la chaîne entre le caractère 7e et le ')' position de caractère. Cela me laisse avec juste la valeur de luminosité que je peux utiliser pour régler le RGB ou blanc LED selon l’écran.

Réglage de température de couleur est un processus similaire à ci-dessus, mais la valeur se situera entre le 'p' et le ')' cette fois...

Pour le réglage RVB, nous avons trois valeurs pour extraire de la chaîne, mais c’est un processus similaire à nouveau. Depuis l’application que nous recevons des chaînes sous la forme (RVBvaleur de. valeur de. valeur)

Donc je sais que la valeur rouge se situera entre le « B » comme le premier point. La valeur verte se situe entre les ouvertures de diaphragme 1re/2e et la valeur bleue est entre le 2e arrêt complet et la ')'.

Une fois que nous avons les valeurs de la neopixles sont sur le nouveau coloris...

Ici, nous vérifions si l’alarme est activée ou désactivée. Si l’heure de l’alarme est changée nous obtenir enverra une chaîne avec le nombre de millisecondes a partir de maintenant jusqu'à l’alarme. Encore une fois, cette valeur est extraite de la chaîne et afin de pouvoir vérifier si son temps de commencer au lever du soleil, que nous devons définir une variable à l’heure actuelle (millis)...

Contrôles de Puck :

Comme indiqué avant si la rondelle (aimant) est une façon il peut conduire à la sortie du capteur hall sous la gâchette basse et si l’autre manière vers le haut au-dessus de la gâchette haute.

Cela permet le contrôle de luminosité et de température de couleur sur le même arc...

Les valeurs de capteurs sont lues. Si l’un d'entre eux est inférieure à la valeur de déclenchement faible alors nous sommes réglage de temp de couleur. Il y a 11 capteurs sous la zone de l’arc, qui génère à son tour aller au-dessous du point de déclenchement que la rondelle est passeront au-dessus d’eux. Chaque capteur possède une valeur PWM pour les LEDs cool et chauds contre elle, commençant par capteur 1 à 100 % chaude, 0 % cool et travaillant au 11 à 0 % chaud, 100 % cool.

Le réglage de la luminosité se fait de la même manière... vérifier si les sorties des capteurs sont au-dessus de la gâchette haute en ce moment et donnant chaque capteur une luminosité valeur de pondération.

Cette pondération de luminosité est ensuite multipliée par la valeur temp de couleur pour donner l’ensemble valeur de sortie. Ce qui vous permet de définir n’importe quel temp de couleur à n’importe quel éclat...

Articles Liés

AMSC - multimédia de l’Arduino et contrôleur de Skype

AMSC - multimédia de l’Arduino et contrôleur de Skype

AMSC - multimédia de l'Arduino et contrôleur de Skype* Imaginez-vous regarder un film et, sorti de nulle part, quelqu'un vous appelle sur Skype et de ce fait vous obtenez destracted et vous avez besoin de rembobiner le film pour se concentrer à nouve
(Ascensor) Modèle d’ascenseur en utilisant Arduino, App Inventor et autres logiciels libres

(Ascensor) Modèle d’ascenseur en utilisant Arduino, App Inventor et autres logiciels libres

ESPConstrucción, paso a paso, de Nations Unies ascensor un escala usando arduino (como controlador del motor y entradas y salidas por bluetooth), inventeur de l'app (para diseño de aplicación como panneau de control del ascensor) y freeCAD y LibreCAD
Arduino Bluetooth contrôle moteur sans moteur puce

Arduino Bluetooth contrôle moteur sans moteur puce

Cette instructable vous indique comment contrôler un moteur à courant continu alimenté par petites piles via bluetooth à l'aide de quelques composants de base.Étape 1: matériauxVous aurez besoin :-1 x Arduino (tout va faire mais vous devrez peut-être
Orbite de Puzzlebox : En utilisant un Arduino pour contrôler un hélicoptère infrarouge

Orbite de Puzzlebox : En utilisant un Arduino pour contrôler un hélicoptère infrarouge

dans ce Instructable nous vous expliquerons comment les signaux infrarouges sont utilisés par une télécommande pour contrôler un jouet ou un périphérique, puis montrer comment un circuit simple peut être ajouté à un Arduino pour faire fonctionner l'a
En utilisant un Arduino de contrôler ou de tester un dispositif électronique de SPI

En utilisant un Arduino de contrôler ou de tester un dispositif électronique de SPI

il y a beaucoup de dispositifs électroniques qui utilisent le bus SPI, ou le bus Serial Peripheral Interface, pour les communications (p. ex. divers capteurs, LCD affiche, potentiomètres numériques, convertisseurs D/A et A/D, sans fil émetteurs et ré
Capteur de la Temperatura y Humedad DHT11-Arduino-APP

Capteur de la Temperatura y Humedad DHT11-Arduino-APP

En este instructable veremos como conectar el capteur de temperatura y humedad DHT11 al Arduino Uno y mandar los datos por Bluetooth un una App para poder verlo fr el celular.Los materiales que necesitaremos fils :Arduino UNOCapteur DHT11Modulo Bluet
Arduino/Android - contrôle d’accueil BLUETOOTH + APP - à l’aide de la HC-06

Arduino/Android - contrôle d’accueil BLUETOOTH + APP - à l’aide de la HC-06

Bonjour tout le monde! Aujourd'hui, j'ai fait une APP Android pour contrôler 8 relais avec arduino via le module Bluetooth HC-06.La vidéo montre seulement 2, mais j'ai changé l'app !Vous pouvez contrôler 2 feux avec elle. j'ai créé l'APP et son open
Ajouter Bluetooth 4.0 à votre projet Arduino [IoT] - contrôlée par Smartphone

Ajouter Bluetooth 4.0 à votre projet Arduino [IoT] - contrôlée par Smartphone

Nous sommes le groupe d'internet de passionnés de choses qui aiment le piratage ensemble différents dispositifs. Découvrez notre projet en cours sur notre site Web et jetez un oeil à ce guide dans un format différent sur notre blog.Étape 1: Introduct
Bras de robot Arduino App

Bras de robot Arduino App

Nous avons besoin d'une plate-forme pour tester notre nouvelle MICILE / interface utilisateur Arduino. La main de robot et le bras semblaient être quelque chose d'assez complexe pour vraiment donner le concept un entraînement complet. Le projet nous
ROVER Bot - l’Arduino Bluetooth contrôlée réservoir

ROVER Bot - l’Arduino Bluetooth contrôlée réservoir

Arduino Bluetooth ROVER RobotLe Arduino ROVERBot. Ce message a pour but de vous présenter les étapes de construction d'un ROVER à l'aide de l'Arduino et un module bluetooth. Pour contrôler le ROVER, il a été utilisé un téléphone Android comme interfa
Arduino Bluetooth contrôlée lampe de bureau - avec relais coffre-fort

Arduino Bluetooth contrôlée lampe de bureau - avec relais coffre-fort

Aujourd'hui, je vais vous montrer comment construire votre propre lampe de bureau contrôlé de Bluetooth avec arduino uno.Pour ce projet, vous devrez construire le coffre-fort de ralay que vous pouvez le trouver ici :(Note : si vous ne voulez pas cons
Arduino de contrôle de votre appareil iOS et votre montre Apple

Arduino de contrôle de votre appareil iOS et votre montre Apple

Ce simple instructable est sur le Gestionnaire de l'Arduino, un puissant polyvalent iOS App qui permet de contrôler n'importe quel Arduino (ou compatible Arduino) Conseil d'administration par le biais de 30 différents Widgets.Certains des Widgets dis
Arduino Aquaponics : Contrôleur de pompe JSON

Arduino Aquaponics : Contrôleur de pompe JSON

quand nous avons commencé à développer la Culture aquaponique contrôleur nous avons réalisé que nous voulions une seule unité qui peut gérer de multiples situations.  Certains systèmes aquaponique inondation et des cerveaux activer/désactiver la pomp
Android App contrôlée ATR (tout terrrain racer)

Android App contrôlée ATR (tout terrrain racer)

Le Bluetooth contrôlée tout Terrain Racer (BCATR) est un bon mélange d'intelligence et de la robustesse.C'est qu'une 4 roues motrices propulsé par une paire de 12v batteries de 2200 mAh Li-Po. 4 haute couple REDUCTEUR lui donnent une vitesse de point