Faire un canal Arduino Mini programmable 4 DC-DVM (7 / 8 étapes)

Étape 7: Les programmes en programmable

Il y a 10 sortes de gens, ceux qui connaissent le binaire et ceux qui ne.

Jusqu’ici, nous avons appris comment mettre sur pied un Arduino et ajouter des diviseurs de tension pour conditionner le signal d’entrée analogique (tension) en réduisant le signal à un niveau qui se trouve dans les paramètres de la norme de l’Arduino. Nous avons ensuite compilé et transféré quelques croquis qui lisent les signaux et les affichent sur le moniteur de la série et l’écran LCD TFT. Maintenant c’est à vous d’étudier le code et continuer le travail. Je suis notamment le code pour les esquisses d’oter qui fonctionnera avec le matériel que nous avons mis en place.
/*--------------------------------------------------------------
Programme: 1 canal DVM avec échantillonnage

Description : Lit valeur sur A0 d’entrée analogique et calcule la tension en supposant
Il y a un diviseur de tension sur la broche A0 qui divise par 10.195

Matériel : Arduino NANO ou UNO avec diviseur de tension sur A0.

Logiciel : Écrit en utilisant Arduino 1.0.3 IDE

Date : 25 mars 2014

Auteur :
--------------------------------------------------------------*/

nombre d’échantillons analogiques à prendre par la lecture
#define NSAMP 100
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 / / reset

#include / / bibliothèque graphique de base
#include / / spécifiques au matériel bibliothèque
#include
Tft Adafruit_ST7735 = Adafruit_ST7735 (cs, dc, rst) ;
int somme = 0 ;                    somme des échantillons prélevés
unsigned char Scount = 0 ; Numéro de l’échantillon actuel
flotteur V1 = 0,00 ;          tension moyenne calculée
flotteur VMAX = 0,00 ;
flotteur VMIN = 100.00 ;
float val = 0,00 ;
flotteur VREF = 5.0 ;
flotteur Dv1 = 10.935 ;
void setup()
{

tft.initR(INITR_BLACKTAB) ;   initialiser un onglet de puce, noire ST7735S
tft.fillScreen(ST7735_BLACK) ; effacer l’écran
tft.setTextColor(ST7735_GREEN) ;
tft.setTextSize(1) ;
tft.setCursor(10,0) ;
TFT.println ("voltmètre CC DVM") ;
tft.setTextColor(ST7735_WHITE) ;
TFT.println ("tension @ broches A0") ;
TFT.Print ("avec MAX, MIN valeurs") ;
tft.setTextColor(ST7735_RED) ;
tft.setCursor(0,140) ;
TFT.println ("attention tension max 55vdc") ;
}

void loop()
{
prendre un certain nombre d’échantillons analogiques et les additionner
tandis que (Scount < NSAMP) {}
Sum += analogRead(A0); / / lire et ajouter les échantillons
Val = (analogRead(A0)) ; Temp de stockage pour MAX / MIN
tft.setCursor (45, 110) ;
TFT.println(Val) ;
if(Val > Vmax) {//get une valeur maximale de l’échantillon
(VMAX = val) ;
}
if(Val < Vmin) {//get MIN valeur d’échantillon
(VMIN = val) ;
}
Scount ++; //increment le nombre d’échantillons
retard (10); //Wait 10 mS avant de lire le prochain échantillon
}
Une fois fait d’échantillonnage, calculer et afficher la tension moyenne calculée
V1 = ((float)sum / (float)NSAMP * VREF * Dv1                                                                                                                      ) / 1024.0;
tft.setTextColor(ST7735_YELLOW,ST7735_BLACK) ;
tft.setCursor (45, 40) ;
tft.setTextSize(2) ;
TFT.println ("V1") ;
tft.setCursor (10, 60) ;
TFT.Print(v1) ;
TFT.println ("Vdc") ;
tft.setCursor (20, 90) ;
tft.setTextSize(1) ;
tft.setTextColor(0xff00,ST7735_BLACK) ;
TFT.Print ("VMAX") ;
TFT.Print ((float) VMAX * VRÉF/1023 * Dv1);// calcule et affiche la tension maximale calculée
TFT.println ("Vdc") ;
tft.setCursor (20, 100) ;
tft.setTextColor(ST7735_GREEN,ST7735_BLACK) ;
TFT.Print (« VMIN") ;
TFT.Print ((float) VMIN * VRÉF/1023 * Dv1);// calcule et affiche la tension minimale calculée
TFT.Print ("Vdc") ;

Scount = 0 ; réinitialiser le nombre d’échantillons
somme = 0 ;    réinitialiser la somme
}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/*--------------------------------------------------------------
Programme : voltmètre de voltmètre 4 canaux

Description : voltmètre 4 canaux DC affichée des tensions
sur l’écran LCD TFT couleur avec 1 décimale, à l’aide d’échantillonnage et une moyenne de

Matériel : Arduino NANO ou UNO avec diviseurs de tension sur A0 à A3.
TFT LCD connecté

Logiciel : Développé à l’aide du logiciel Arduino 1.0.3

Date : 10 mars 2014

Auteur :
--------------------------------------------------------------*/
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 / / reset

#include / / bibliothèque graphique de base
#include / / spécifiques au matériel bibliothèque
#include
Tft Adafruit_ST7735 = Adafruit_ST7735 (cs, dc, rst) ;
nombre d’échantillons analogiques à prendre par la lecture, par canal
#define NSAMP 100 / / nombre d’échantillons à prendre avant affichage
valeurs d’étalonnage de diviseur de tension
#define Dv1 11.00
#define Dv2 11.001
#define Dv3 11.00
#define Dv4 10.985
Tension de référence ADC / valeur d’étalonnage
#define VREF 5,00

int somme [4] = {0} ;                sommes d’échantillons prélevés
unsigned char Scount = 0 ;  Numéro de l’échantillon actuel
char AVvolts [4] = {0,0} ;        tensions calculées
char cnt1 = 0 ;                  utilisé en « pour » boucles

void setup()
{
tft.initR(INITR_BLACKTAB) ;   initialiser un onglet de puce, noire ST7735S
tft.fillScreen(ST7735_BLACK) ; effacer l’écran
tft.setTextColor(ST7735_WHITE) ;
tft.drawRoundRect (2, 20, 120, 110, 5, ST7735_WHITE) ;
tft.setTextSize(1) ;
tft.setCursor(5,0) ;
TFT.println ("voltmètre de channel 4") ;
tft.setTextColor(0XFF00) ;
tft.setCursor(0,140) ;
TFT.println ("attention tension max 55vdc") ;
}

void loop()
{
prendre un certain nombre d’échantillons analogiques et les additionner
tandis que (Scount < NSAMP) {}
déguster chaque canal A0 à A3
pour (cnt1 = 0; cnt1 < 4; cnt1 ++) {}
somme [cnt1] += analogRead (A0 + cnt1) ;
}
Scount ++ ;
Delay(10) ;
}
calculer la tension pour chaque canal
pour (cnt1 = 0; cnt1 < 4; cnt1 ++) {}
AVvolts [cnt1] = (somme (flotteur) [cnt1] / (float) NSAMP * VRÉF) / 1024.0 ;
}
affichage des tensions sur l’écran TFT de LCC

tension 1 - V1(pin A0
tft.setTextColor(ST7735_YELLOW,ST7735_BLACK) ; couleur définie pour V1
tft.setTextSize(2) ;
tft.setCursor (15, 40) ;
TFT.Print ("V1") ;
TFT.Print (AVvolts [0] * Dv1, 1) ;
TFT.Print (« V ») ;
tension 2 - V2(pin A1)
tft.setTextColor(ST7735_GREEN,ST7735_BLACK); / / définir la couleur pour V2
tft.setCursor (15, 60) ;
TFT.Print ("V2") ;
TFT.Print (AVvolts [1] * Dv2, 1) ;
TFT.Print (« V ») ;
tension 3 - V3(pin A2)
tft.setTextColor(ST7735_CYAN,ST7735_BLACK); / / définir la couleur pour V3
tft.setCursor (15, 80) ;
TFT.Print ("V3") ;
TFT.Print (AVvolts [2] * Dv3, 1) ;
TFT.Print (« V ») ;
tension 4 - V4(pin A3)
tft.setTextColor(ST7735_WHITE,ST7735_BLACK); / / définir la couleur pour V4
tft.setCursor (15, 100) ;
TFT.Print ("V4") ;
TFT.Print (AVvolts [3] * Dv4, 2) ;
TFT.Print (« V ») ;
tft.drawRoundRect (2, 20, 120, 110, 5, ST7735_WHITE) ;
comte de réinitialisation et sommes
Scount = 0 ;
pour (cnt1 = 0; cnt1 < 4; cnt1 ++) {}
somme [cnt1] = 0 ;
}
}

Articles Liés

Fil d’EL - Arduino Mini Controller Module 6 canaux de relais Pro -

Fil d’EL - Arduino Mini Controller Module 6 canaux de relais Pro -

La recherche dans d'autres Instructables, j'ai trouvé plusieurs façons de contrôler EL fil avec arduino, mais pas tous ont été comme je le voulais, alors j'ai décidé de créer ma propre version, peut-être n'est pas parfaite, mais fonctionne.Ce Module
Programme Arduino Mini 05 avec FTDI Basic

Programme Arduino Mini 05 avec FTDI Basic

Lorsque vous avez besoin d'un petit arduino avec une bonne quantité de broches e/s, l'Arduino Mini est pour vous. C'est l'un de mes préférés microcontrôleurs des projets de technologie portable à cause de sa taille.Étape 1: matériaux Arduino MiniFTDI
Faire votre propre Arduino personnalisé compatible

Faire votre propre Arduino personnalisé compatible

j'aime Ardunio. J'aime les choses que les gens font avec eux et j'aime faire mes propres. En août dernier que j'ai publié une Instructable comment faire votre propre timbre-poste de taille compatible Arduino. Cet Instructable va vous montrer comment
Arduino mini Multi fonction Controller w / LCD Display

Arduino mini Multi fonction Controller w / LCD Display

ce Instructable s'appuie sur la surveillance de l'environnement Arduino mini et mini moniteur Arduino EEG Instructables.Il vous permet de contrôler jusqu'à 4 relais en utilisant l'heure, la température et/ou lumière, votre esprit, ou quel que soit le
Arduino Mini CNC Machine de table traçante de dvd lecteurs

Arduino Mini CNC Machine de table traçante de dvd lecteurs

Dans ce projet, je vais vous montrer comment construire facilement vos propres Arduino Mini CNC Plotter de faible coût !Ce projet est une mise à jour de mon précédent cnc, avec construction mieux et avec plus de précision.J'ai décidé de faire ce guid
Adaptateur de FTDI breadboard Arduino Mini

Adaptateur de FTDI breadboard Arduino Mini

Je voulais être en mesure de programmer un Arduino Mini (v5) en place sur une maquette. Les instructions sont faciles à trouver sur le site d'Arduino (Guide à l'Arduino Mini) mais alors les fils obtiendrait dans la voie de mon projet. J'utilise un câ
USS Enterprise : Arduino Mini alimenté.

USS Enterprise : Arduino Mini alimenté.

Hé les gars, nous avons fait un jouet cool entreprise nous avons acheté à Michaels pour 15 $ et réussi au faire fonctionner ! C'était une grande expérience nous et construit un petit jouet de Star Trek. Si vous êtes intéressés par le projet et il y e
Comment faire 400 Watt Brushless Mini Sumo

Comment faire 400 Watt Brushless Mini Sumo

cette instructable est 18 + catégorie en concours et vous montrera comment faire un sumo de Mini à l'aide de moteurs brushless et brushless ESC :Tout d'abord, ce projet a été un vrai défi pour moi pour s'adapter à tous les composants dans la zone de
Carte contrôleur de Arduino mini USB 24 voies servo

Carte contrôleur de Arduino mini USB 24 voies servo

Arduino mini carte de contrôleur USB 24 voies servo utiliser pour robot bipède et commande de robot quadrupèdeSupporte le dernier système de 64 bits Windows8, supporte Linux système (xp, vista, win7 soutien)Il s'agit de la carte contrôleur nouvelleme
Mise en route de BTE13-010 - clone Arduino Mini

Mise en route de BTE13-010 - clone Arduino Mini

Il s'agit d'un guide simple qui va vous apprendre comment démarrer avec ce clone mini à bas prix pour Arduino, couvrant toutes les étapes que l'on doit faire pour le faire fonctionner. Fondamentalement, ils sont 4...Souder les en-têtes PIN *Ce câblag
L’utilisation de Scratch ou Arduino pour programmer un mBot avec Makeblock

L’utilisation de Scratch ou Arduino pour programmer un mBot avec Makeblock

Il y a quelques jours, j'ai fait un robot par Makeblock. Nous l'appelons mBot---un robot mieux s'adapter à l'éducation et la mise à la consommation. Il est simple à utiliser et plus abordable. Nous croyons que c'est le meilleur produit robotique dans
Communication de l’Arduino USB - programme de traitement de

Communication de l’Arduino USB - programme de traitement de

puisque j'ai eu quelques problèmes à la recherche d'informations sur la façon de communiquer le Conseil d'administration de l'Arduino avec le programme d'ordinateur, j'ai décidé de faire ce tutoriel.Ce tutoriel va vous montrer comment faire un progra
Arduino Mini-Shields

Arduino Mini-Shields

Il s'agit d'un ensemble de simple, petit facteur de forme, mini-boucliers que j'ai créé presque par accident. J'ai fait de plus en plus d'entre eux, j'ai réalisé qu'ils pouvaient être vraiment utiles. Ce qui a commencé comme un moyen d'utiliser quelq
FT232 Modification pour Arduino minis etc.

FT232 Modification pour Arduino minis etc.

FT232 Modification pour Arduino minis etc..Si comme moi vous avez commandé ce modèle particulier, que c'est un pain PITA que le sélecteur ne modifie pas la tension de broche VCC.Ne vous inquiétez pas il y a une modification très simple. pour ce probl