Immersion cuiseur contrôlé par Arduino (13 / 13 étapes)

Étape 13 :

/*****************************************************/
/* */
/ * Titre : cuiseur Imersion contrôleur * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * MCWSM * /
/* */
/ * Description: * /
/ * Cette esquisse fonctionne sur la plateforme Arduino Uno * /
/ * avec un bouclier SainSmart 1602 LCD/clavier, * /
/ * SainSmart à l’état solide relais périphérique et LM35 * /
/ * capteur de température. Il est conçu pour contrôle * /
/ * deux éléments communs de chauffage et une petite * /
/ * pompe immergeable dans un cuiseur à immersion. Le * /
/ * utilisateur compose simplement dans une température réglée à l’aide de la * /
/ * clavier et les stroboscopes contrioller le chauffage * /
/ * éléments à atteindre et à maintenir l’eau réglée * /
/ * température. */
/* */
/ * AVENIR : ajoutez des fonctions de minuterie/horloge * /
/* */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
#include < LiquidCrystal.h >
#define VERSION_STRING « 1.0 »
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
#define ELEMENT_1 2 / / 1 élément control port
#define ELEMENT_2 3 / / 2 de l’élément de commande port
#define LED_PORT 13
#define THIRTY_SECONDS 30000 ; 30 000 microsecondes
#define KEYBOARD_PORT 0
#define TEMP_PORT 1
#define augmentation 1
#define diminution -1
#define NO_CHANGE 0
#define sélectionnez 999
#define 0 CELSIUS
#define FARENHEIT 1
#define TEMP_COUNT 10
#define KEY_BOUNCE_DELAY 333
int iTempMode = Fahrenheit ; défaut de Farenheit...
int iSetTemp = 130 ; iSetTemp est global...
int iKeyPressIn = 0 ;
flotteur fTemp [TEMP_COUNT] ; Tableau de lissage température mondiale...
int iCurrentIndex = 0 ; iCurrentIndex est un indice mondial en tableau temp...
bDegreeSymbol Byte [8] = / / masque de bits pour symbole °...
{
B11100,
B10100,
B11100,
B00000,
B00000,
B00000,
B00000,
B00000
};
bCheckMarkSymbol Byte [8] = / / masque de bits pour le symbole √...
{
B00000,
B00000,
B00000,
B00001,
B00010,
B10100,
B01100,
B01000
};
Innovente lcd (8, 9, 4, 5, 6, 7) ; initialiser la bibliothèque avec les numéros des broches interface
void setup()
{
/*****************************************************/
/* */
/ * Module : le programme d’installation * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Initialise l’affichage à cristaux liquides et affiche splash * /
/ * écran. */
/ * Pendant la séquence d’installation, la température * /
/ * Tableau de lissage est initialisé avec les lectures comme * /
/ * bien. */
/* */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
String strLine1 ;
String strLine2 ;
String strElipses = "." ;
lcd.createChar (0, bDegreeSymbol) ; Créer des personnages de LCD
lcd.createChar (1, bCheckMarkSymbol) ;
LCD.Begin (16, 2) ; colonnes de configuration LCD affichage, les lignes...
LCD (« Boot... », "") ;
pour (int iIndex = 0; iIndex < TEMP_COUNT ; iIndex ++) / / instancier le tableau de température pour le lissage de signal...
{
fTemp [iIndex] = analogRead(TEMP_PORT) ;
fTemp [iIndex] = ((fTemp [iIndex] * 3.3) / 1023) ; 10 mV par degré Celsius
Si (iTempMode == FARENHEIT)
{
fTemp [iIndex] = ConvertCelsiusToFarenheit(fTemp[iIndex]); / / convertir en Farenheit...
}
LCD (« Boot... », strElipses) ;
strElipses += "." ;
Delay(100) ;
}
pinMode (ELEMENT_1, sortie) ;
pinMode (ELEMENT_2, sortie) ;
pinMode (LED_PORT, sortie) ;
strLine1 = « Immersion cuisinière » ; Créer et afficher l’écran de démarrage
strLine2 = "Version:" ;
strLine2 += VERSION_STRING ;
LCD (strLine1, strLine2) ;
Delay(2000) ;
}
void loop()
{
/*****************************************************/
/* */
/ * Module : boucle * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Obtient SetTemp nouveau, le cas échéant. Il appelle ensuite SetTemp * /
/ * pour stroboscope les éléments chauffants pour ajuster le * /
/ * temp. Ensuite, il affiche les infos temp, retarde un * /
/ * seconde alors retours. Le délai empêche le * /
/ * Relais à état solide soit en continu * /
/ * activée ou désactivée. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
String strLCDLine0 = "" ;
String strLCDLine1 = "" ;
iSetTemp = GetSetTemp(iSetTemp) ; voir si l’utilisateur souhaite modifier le temp...
SetTemp(iSetTemp) ; Eléments de chauffage...
DisplayTemps (iSetTemp, GetCurrentTemp(), les de ') ; Affichage temps...
Delay(1000) ; Ne saturez SSRs...
}
int GetSetTemp (int iSetTemp)
{
/*****************************************************/
/* */
/ * Module : GetSetTemp * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Lit le clavier pour voir si des ajustements sont en cours * /
/ * fait au courant de la valeur temp. La valeur par défaut est * /
/ * qu’aucune clé n’est être déprimé. Cette propriété renvoie * /
/ * btnNone de ReadKeypad et de résultats dans un * /
/ * retour immédiat à l’appelant. Dans le cas contraire, le * /
/ * température de consigne est réglée correctement et * /
/ * nouvelle température ajustée. */
/* */
/ * Ce module permet également l’utilisateur d’entrer dans * /
/ * un sous-menu où le peut faire des choses comme changer * /
/ * le mode de fonctionnement de Fahrenheit à Celsius. */
/* */
/ * Si l’utilisateur a enfoncé les touches pour faire temp * /
/ * ajustements, ils doivent s’appuyer sur la touche Select * /
/ * pour faire ces ajustements permanents et retour * /
/ * à l’appelant. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
int iKeyIn ;
int iNewSetTemp ;
int iTempDelta ; AUGMENTER. DIMINUTION ou SELECT...
char cSetTemp [4] ;
bSelected booléen = false ;
char cTempMode = s ' ;
iNewSetTemp = iSetTemp ; Commencez par temp actuel...
iKeyIn = ReadKeypad() ;
Si (iKeyIn! = btnNONE) / / btnNONE = rien à faire, il suffit de retourner à l’appelant...
{
/ / tant que les bSelected...
{
Switch(iKeyIn)
{
case btnUP: / / régler la température jusqu'à...
iNewSetTemp += 1 ;
cTempMode = « A » ; informer l’ajustement de l’utilisateur en cours...
rupture ;
case btnDOWN: / / régler la température à la baisse...
iNewSetTemp-= 1 ;
cTempMode = « A » ; informer l’ajustement de l’utilisateur en cours...
rupture ;
affaire btnLEFT :
iNewSetTemp = Menu() ; menu d’options...
bSelected = true ; sortir une fois que toutes les options du menu...
rupture ;
case btnSELECT: / / ajustements complet...
bSelected = true ;
rupture ;
par défaut: / / ignorer les autres touches...
rupture ;
}
DisplayTemps (iNewSetTemp, GetCurrentTemp(), cTempMode) ; afficher chaque ajustement tel qu’il apparaît...
Delay(KEY_BOUNCE_DELAY) ; lisser les multiple...
iKeyIn = ReadKeypad() ; intérieure en lecture boucle...
} tandis que (! bSelected) ;
}
Return(iNewSetTemp) ;
}
Sub SetTemp(int iSetTemp)
{
/*****************************************************/
/* */
/ * Module : SetTemp * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Ce module compare le paramètre d’iSetTemp à * /
/ * la température actuelle. Si il y a plus qu’un * /
/ * degré de variance, il transforme les éléments chauffants * /
/ * activer ou désactiver selon le cas. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
int iCurrentTemp ;
iCurrentTemp = GetCurrentTemp() ; vérifier la température actuelle...
Si (abs (iSetTemp - iCurrentTemp) > = 1) / / si la température varie de plus de 1 degré
{
Si (iCurrentTemp > iSetTemp) / / si la température trop élevée, désactiver des éléments de chauffage
{
digitalWrite (ELEMENT_1, basse) ;
digitalWrite (ELEMENT_2, basse) ;
digitalWrite (LED_PORT, basse) ;
}
d’autre
{
digitalWrite (ELEMENT_1, élevé) ; Si temp trop bas, tourner sur les éléments de chauffage
digitalWrite (ELEMENT_2, élevé) ;
digitalWrite (LED_PORT, élevé) ;
}
}
}
int GetCurrentTemp()
{
/*****************************************************/
/* */
/ * Module : GetCurrentTemp * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Ce module indique la température actuelle de la * /
/ * capteur et il stocke le signal lissage * /
/ * tableau. La température du capteur est en * /
/ * Celsius et nous convertir en Farenheit au besoin * /
/ * par le mode de fonctionnement actuel. L’utilisateur est alors * /
/ * retourne un entier représentant la lissée * /
/ * (c'est-à-dire moyen de tous les temps dans le tableau) * /
/ * température. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
int iReturnTemp = 0 ;
float fCumulativeTemp = 0 ;
float fADCIn ;
Si ((iCurrentIndex) == TEMP_COUNT) / / rester dans les limites du tableau...
{
iCurrentIndex = 0 ;
}
fADCIn = analogRead(TEMP_PORT) ; obtenir temp signal du capteur...
Si (iTempMode == CELSIUS) / / faire la conversion en degrés Celsius...
{
fTemp [iCurrentIndex] = (((fADCIn * 3.7) / 1024) * 100) ;
}
d’autre
{
fTemp [iCurrentIndex] = fADCIn ; lecture de droite est en farenheit...
}
pour (int iIndex = 0; iIndex < TEMP_COUNT ; iIndex ++) / / somme le dernier X lectures...
{
fCumulativeTemp += fTemp [iIndex] ;
}
iReturnTemp = ((int)(fCumulativeTemp / TEMP_COUNT)) ; Return temp lissée...
iCurrentIndex ++ ; index de la bosse pour appel suivant...
Return(iReturnTemp) ;
}
void DisplayTemps (int iSetTemp, int iCurrentTemp, char cTempMode)
{
/*****************************************************/
/* */
/ * Module : DisplayTemps * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Ce module affiche deux lignes des températures * /
/ * sur l’écran LCD. Le premier est le temp set * /
/ * et est étiqueté basé sur la question de savoir si nous sommes * /
/ * réglage il, ou elle est la température de consigne. Le * /
/ * deuxième ligne de l’écran toujours le courant * /
/ * température. */
/* */
/ * Si ce module est appelé en continu, le * /
/ * cligno alors l’appelant devrait retarder entre * /
/ * appels. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
String strLine1 ;
String strLine2 ;
Si (cTempMode == « A ») / / mode de réglage...
{
strLine1 = "Adjust:" ;
}
d’autre
{
strLine1 = "la valeur:" ; Mode Set...
}
strLine1 += iSetTemp ;
strLine2 = String ("actuel:") ;
strLine2 += iCurrentTemp ;
LCD.Clear() ;
lcd.setCursor (0, 0) ;
LCD.Print(strLine1) ;
LCD.Write(Byte(0)) ; symbole de degré...
Si (iTempMode == FARENHEIT)
{
LCD.Print("F") ;
}
d’autre
{
LCD.Print("C") ;
}
lcd.setCursor (0, 1) ;
LCD.Print(strLine2) ;
LCD.Write(Byte(0)) ;
Si (iTempMode == FARENHEIT)
{
LCD.Print("F") ;
}
d’autre
{
LCD.Print("C") ;
}
}
void LCD (String strLine0, String strLine1)
{
/*****************************************************/
/* */
/ * Module : LCD * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Ce module affiche deux lignes de texte à l’écran * /
/ * afficher. */
/ * Si ce module est appelé en continu, le * /
/ * cligno alors l’appelant devrait retarder entre * /
/ * appels. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
LCD.Clear() ;
Si (strLine0.length() > 0)
{
lcd.setCursor (0, 0) ;
LCD.Print(strLine0) ;
}
Si (strLine1.length() > 0)
{
lcd.setCursor (0, 1) ;
LCD.Print(strLine1) ;
}
}
int ReadKeypad()
{
/*****************************************************/
/* */
/ * Module : ReadKeypad * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Lit le clavier SainSmart. Si l’utilisateur * /
/ * déprime une clé, une valeur est retournée. Cette valeur * /
/ * peut varier d’un appareil. Ainsi, nous * /
/ * déterminer la valeur de voir si nous sommes près de * /
/ * la valeur lue. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
int iKeyIn = analogRead(KEYBOARD_PORT) ;
Si (iKeyIn > 1000) / / ce sera le plus souvent résultat...
{
Return btnNONE ;
}
ElseIf (iKeyIn < 50)
{
Delay(KEY_BOUNCE_DELAY) ; poignée multiple...
Return btnRIGHT ;
}
ElseIf (iKeyIn < 195)
{
Delay(KEY_BOUNCE_DELAY) ; poignée multiple...
Return btnUP ;
}
ElseIf (iKeyIn < 380)
{
Delay(KEY_BOUNCE_DELAY) ; poignée multiple...
Return btnDOWN ;
}
ElseIf (iKeyIn < 555)
{
Delay(KEY_BOUNCE_DELAY) ; poignée multiple...
Return btnLEFT ;
}
ElseIf (iKeyIn < 790)
{
Delay(KEY_BOUNCE_DELAY) ; poignée multiple...
Return btnSELECT ;
}
else return btnNONE ; Si tout cela échoue...
}
int Menu()
{
/*****************************************************/
/* */
/ * Module : Menu * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Ce module permet à l’utilisateur un moyen de * /
/ * pour accéder aux autres fonctionnalités au sein de la * /
/ * cuiseur à immersion. Pour la version 1.0 c’est limité * /
/ * pour modifier le mode de fonctionnement entre Farenheit * /
/ * et Celsius. Pour l’avenir, il s’agira notamment * /
/ * pour accéder aux fonctions de l’horloge. */
/ * Ce module retourne une fois le bouton Select * /
/ * déprimé. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
int iKeyIn ;
bSelected booléen = false ;
int iStartingTempMode = iTempMode ;
LCD ("Celsius", « Farenheit ») ; Commencez par afficher le paramètre actuel...
Si (iTempMode == CELSIUS)
{
lcd.setCursor (10, 0) ;
}
d’autre
{
lcd.setCursor (10, 1) ;
}
LCD.Write(Byte(1)) ; la coche de l’option en cours d’affichage...
faire
{
iKeyIn = ReadKeypad() ; obtenir la sélection de l’utilisateur...
Switch(iKeyIn)
{
affaire btnUP :
LCD ("Celsius", « Farenheit ») ;
lcd.setCursor (10, 0) ;
LCD.Write(Byte(1)) ; afficher la coche de l’option choisie...
iTempMode = CELSIUS ;
rupture ;
affaire btnDOWN :
LCD ("Celsius", « Farenheit ») ;
lcd.setCursor (10, 1) ;
LCD.Write(Byte(1)) ; afficher la coche de l’option choisie...
iTempMode = Fahrenheit ;
rupture ;
case btnSELECT: / / Ceci termine le menu et met en œuvre l’action demandée...
bSelected = true ;
rupture ;
par défaut: / / ignorer les autres touches...
rupture ;
}
Delay(KEY_BOUNCE_DELAY) ;
} tandis que (! bSelected) ;
Si (iTempMode! = iStartingTempMode) / / si nous avons changé les modes...
{
Si (iTempMode == CELSIUS)
{
iSetTemp = (int) ConvertFarenheitToCelsius((float) iSetTemp) ; convertir iSetTemp Celsius pour fins d’exposition...
}
d’autre
{
iSetTemp = (int) ConvertCelsiusToFarenheit((float) iSetTemp);// iSetTemp convertir de Fahrenheit pour afficher des fins...
}
ConvertTempSmoothingArray(iTempMode) ; convertir les temps de la température gamme de lissage...
}
Return(iSetTemp) ;
}
Sub ConvertTempSmoothingArray(int iNewTempMode)
{
/*****************************************************/
/* */
/ * Module : ConvertTempSmoothingArray * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Ce module permet de sélectionner la température * /
/ * lissage tableau de conversion des températures comprises entre * /
/ * Fahrenheit et Celsius basée sur le nouveau * /
/ * mode de fonctionnement sélectionné. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
int iIndex = 0 ;
Switch(iNewTempMode)
{
cas de Fahrenheit :
pour (int iIndex = 0; iIndex < TEMP_COUNT ; iIndex ++) / / pour chaque temp dans le tableau de lissage...
{
fTemp [iIndex] = ConvertCelsiusToFarenheit(fTemp[iIndex]) ; convertir en Farenheit...
}
rupture ;
cas c :
pour (int iIndex = 0; iIndex < TEMP_COUNT ; iIndex ++) / / pour chaque temp dans le tableau de lissage...
{
fTemp [iIndex] = ConvertFarenheitToCelsius(fTemp[iIndex]) ; convertir Celsius...
}
rupture ;
par défaut :
rupture ;
}
}
flotteur ConvertCelsiusToFarenheit(float fCelsiusTemp)
{
/*****************************************************/
/* */
/ * Module : ConvertCelsiusToFarenheit * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Ce module convertit une température de Celsius * /
/ * à Farenheit * /
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
Return ((fCelsiusTemp * 1.8) + 32,0) ;
}
flotteur ConvertFarenheitToCelsius(float fFarenheitTemp)
{
/*****************************************************/
/* */
/ * Module : ConvertFarenheitToCelsius * /
/ * Version : 1.0 * /
/ * Version Date : 05/01/2012 * /
/ * Auteur : Edward A Ranzenbach * /
/ * Description: * /
/ * Ce module convertit une température de * /
/ * Fahrenheit à Celsius. */
/ * Histoire: * /
/* */
/ * 2012-05-01 - Edward A Ranzenbach * /
/ * Codage initiale * /
/* */
/*****************************************************/
retour ((fFarenheitTemp-32.0) *. 555) ;
}

Articles Liés

Scanner Rgb Led lampe Pwm contrôlé par Arduino Nano

Scanner Rgb Led lampe Pwm contrôlé par Arduino Nano

Scanneur recyclé rgb led lampe pwm contrôlé par Arduino NanoÉtape 1: Résultat FinalC'est ce que vous obtenez si vous suivez ce instructable.Étape 2: Rechercher une imprimanteVous recherchez un cassé hp imprimante tout en un. (D'autres marques peuvent
Queue de loup contrôlé par Arduino

Queue de loup contrôlé par Arduino

salutations, ou devrais-je dire, « Aaaaaooooooooooooh! » Plaisir de faire votre passionné de loup compagnons de connaissance. Vous avez un esprit de loup intérieure qui est tellement désireux de se faire connaître que vous sont venus à moi pour appre
Projets des Carlitos : Sans fil discours contrôlé par Arduino Robot

Projets des Carlitos : Sans fil discours contrôlé par Arduino Robot

Nous rêvons tous d'avoir des appareils et machines qui peuvent obéir à nos commandes vocales. Eh bien, nous allons faire le premier pas vers ce qui en fait se produire et construire un discours contrôlé par Arduino-basé robot mobile.Vous pensez peut-
Un autre carton--aspirateur robot contrôlé par Arduino

Un autre carton--aspirateur robot contrôlé par Arduino

Il s'agit de simple--aspirateur robot contrôlé par Arduino.Cela peut être encore plus simple si au lieu de turbine et bac à poussière - utiliser un mouchoir en papier de cuisine ou un morceau de tissu synthétique.Étape 1: Composants requisArduinoMote
Contrôlé par Arduino Smart Home

Contrôlé par Arduino Smart Home

Ce Instructable a été écrit par Evangéliste PubNub Ian Jennings . Histoire de Ian se promène à travers son processus de construction d'un modèle de maison intelligent contrôlé par Arduino à partir de zéro.--Retour en septembre, notre fondateur Stephe
Rideau contrôlé par Arduino

Rideau contrôlé par Arduino

Dans ce nouveau projet, nous avons combiné électronique et la mécanique et faites un rouleau de Rideau contrôlé par Arduino.Profitez de fabrication !Étape 1: Planification du CircuitPour ce circuit, vous aurez besoin :1. potentiomètre rotatif2. Ardui
L’Hexacorde, un Instrument de musique contrôlé par Arduino

L’Hexacorde, un Instrument de musique contrôlé par Arduino

L'an dernier, avec la date butoir de la Bay Area Maker Faire, j'ai créé un nouvel instrument appelé l'Hexacorde. C'était un tas d'amusement, un grand succès, et j'ai eu la chance de faire un certain nombre de discussions à ce sujet. Le défi de concep
DIY RC Car contrôlé par Arduino

DIY RC Car contrôlé par Arduino

Les étapes suivantes si tout va bien vous guidera pour faire votre propre voiture RC contrôlée par Arduino.Etape 1: Démonter la voiture RCVous devez démonter votre voiture RC et prendre l'IC hors tension le circuit imprimé. Vous pouvez le faire avec
Générateur de signaux iOS contrôlé par Arduino

Générateur de signaux iOS contrôlé par Arduino

Ce générateur de signaux est basé sur le travail par Amanda Ghassaei. Générateurs de signaux (ou des générateurs de fonctions) sont utilisés pour tester et déboguer des circuits. réponse en fréquence par exemple de l'ampli op ou des capteurs. Ce géné
Douille de Web contrôlé par Arduino

Douille de Web contrôlé par Arduino

J'ai fait un socket Web contrôlée par Taiwan cloné Arduino, qui repose par Arduino Pro Mini et ESP8266-1, le site officiel de ce clone est : Webduino = x Arduino WebNous pouvons la programmer par simple HTML, CSS et JavaScript, il a également des sup
RGB LED contrôlé par arduino

RGB LED contrôlé par arduino

SalutC'est un peu instructable à montrer comment faire Led RVB (rouge vert bleu) contrôlé avec arduino. Il contient des schémas de circuit et un petit programme c# qui permet de changer la couleur de la Led.Étape 1: Faire le circuit Vous aurez besoin
Iontophorèse contrôlé par arduino timer

Iontophorèse contrôlé par arduino timer

DIY appareil iontophorèse propulsé par Arduino avec fonction timerCes dispositif aura un commutateur de polarité sur l'intervalle de temps programmé (ON et OFF).Étape 1: contexte HISTOIRE :L'hyperhidrose est la condition caractérisée par la transpira
Contrôlé par Arduino robotique tambour

Contrôlé par Arduino robotique tambour

Ans que j'ai dit quiconque écoute que j'allais construire un tambour robotique. La plupart des gens peu haussa les épaules indifféremment. Alors même que je l'ai construit, la plupart des gens peu regarda au-dessus et véhiculée fuis. Il semblait que
Contrôlé par Arduino RGB LED infini miroir

Contrôlé par Arduino RGB LED infini miroir

Mise à jour 22/11/2013: Merci à tous ceux qui ont voté pour ce projet dans le concours de microcontrôleur ! Il fut l'un des trois gagnants du premier prix.Mise à jour 17/09/2013: Merci à tous ceux qui ont voté pour ce projet dans le concours de l'Ard