Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Bibliothèque de ports E/S 8 bits pour Arduino

Composants et fournitures

Arduino UNO
× 1
LED 5 mm :Rouge
× 1
Potentiomètre à un tour - 10k ohms
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Arduinolibrary pour le port IO 8 bits

Nous savons tous que l'arduino donne une sortie numérique en utilisant "digitalWrite() "fonction et obtient une entrée numérique via "digitalRead() " une fonction. Mais en utilisant ces deux fonctions, il peut donner une sortie ou recevoir une entrée de n'importe quelle broche - ce qui signifie qu'à la fois, il peut donner une sortie ou recevoir une entrée à partir d'une seule broche uniquement. Si quelqu'un veut interfacer n'importe quel périphérique IO 8 bits comme un affichage à 7 segments, des commutateurs DIP ou un DAC (convertisseur numérique-analogique) avec arduino, il ne peut pas donner une sortie numérique directe 8 bits à l'appareil mais à la place il doit donner une sortie à 8 broches différentes . Le modèle d'octet de données (8 bits) est envoyé à différentes broches sous la forme de 1 et de 0. Par exemple, si l'octet de données est de 37 h (0011 0111), il faut envoyer ces 0 n 1 modèle à 8 broches différentes à l'aide de la fonction digitalWrite () .

Donc, pour surmonter cette situation, je présente ici la bibliothèque de ports IO 8 bits (port d'entrée-sortie) pour arduino. En utilisant cette bibliothèque, on peut envoyer des données 8 bits directes à n'importe quelle broche de carte arduino configurée comme un port 8 bits combiné ou peut obtenir une entrée 8 bits à partir de ces broches configurées. Cette bibliothèque associe 8 broches d'arduino ensemble pour fonctionner comme un port IO 8 bits. Il suffit de sélectionner 8 broches arduino à combiner en tant que port 8 bits et de configurer la direction de ses données en entrée ou en sortie. La direction des données est définie par le caractère « O » pour la sortie ou « I » pour l'entrée.

La bibliothèque n'a que 5 fonctions. Il existe deux constructeurs qui créeront des objets de port, une fonction pour envoyer une sortie numérique 8 bits aux broches du port, une fonction pour obtenir une entrée numérique 8 bits à partir des broches du port et une fonction supplémentaire pour modifier/définir la direction IO du port. Ici, les 5 fonctions sont expliquées brièvement et après quelques exemples sont donnés avec des explications.

1. IO_Port_8bit(int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8, char dir)

C'est constructeur. Il créera des objets de cette classe et créera ainsi un ou plusieurs ports 8 bits en combinant des broches arduino distinctes. Il faut spécifier 8 broches arduino différentes à combiner en tant que port avec la direction des données en entrée ou en sortie - cela signifie que les ports fonctionnent en entrée ou en sortie. Le dernier argument dir de ce constructeur definesport fonctionne en entrée ou en sortie. Si dir='O' signifie que le port fonctionne en sortie et ifdir='I', le port fonctionne en entrée. Le même port ne peut pas fonctionner en entrée et en sortie simultanément ou même alternativement. Il indique également une erreur si la direction des données n'est pas sélectionnée

2. IO_Port_8bit(int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8)

Ceci est un autre constructeur. Il créera également des objets de cette classe et créera ainsi un ou plusieurs ports 8 bits en combinant des broches arduino distinctes. On doit spécifier 8 broches arduino différentes à combiner en tant que port. Mais il ne spécifie pas la direction des données en entrée ou en sortie. Après avoir créé l'objet de port à l'aide de ce constructeur, il faut définir la direction du port à l'aide de set_IO_direction une fonction. Ainsi, ce constructeur permet au programmeur de modifier la direction des données du port lors de l'exécution à l'aide de ce constructeur, le même port peut fonctionner en entrée ou en sortie alternativement (mais pas simultanément)

3. set_IO_direction(char dir)

Cette fonction spécifie la direction d'entrée/sortie du port. Il a un argument de caractère qui peut être « I » pour le port en tant qu'entrée ou « O » pour le port en tant que sortie. Si datadirection n'est pas sélectionné, il affiche une erreur sur le moniteur série d'arduino

4. send_8bit_data(int byt)

Cette fonction envoie des données 8 bits aux broches spécifiées. Donnez simplement des données int (doit être <255) comme argument qui est directement donné à 8 broches différentes. Si les données sont> 255, une erreur s'affiche sur le moniteur série de l'arduino.

5. get_8bit_data(void)

Cette fonction obtient des données de 8 bits à partir des broches spécifiées. Il renvoie des données int 8 bits en lisant l'état de 8 broches différentes

Exemple 1 : clignotement de 8 leds alternativement à une fréquence de 1 Hz

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //créer un port de sortie

void setup() // rien requis dans la configuration

{

}

boucle vide()

{

myport.send_8bit_data(85);// envoie des données pour faire clignoter toutes les LED impaires

retard (500 );

myport.send_8bit_data(170); envoyer des données pour faire clignoter toutes les LED paires

retard (500 );

}

Exemple2 :afficher le modèle de comptage binaire sur les LED de 0 à F

#include

IO_Port_8bitmy8bitport(2, 3, 4, 5, 6, 7, 8, 9);//créer un objet de port

configuration vide()

{

my8bitport.set_IO_direction('O');// définir la direction du port

}

boucle vide()

{

int i;

for(i=0;i<16;i++) //envoi des données 0 à 15 à afficher

{ // modèle binaire

myport.send_8bit_data(i);

retard (200 );

}

}

Exemple 3 :indiquez le niveau de tension d'entrée analogique sur l'affichage du graphique à barres LED 8 bits

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); //créer un objet de port de sortie

configuration vide()

{

myport.send_8bit_data(255); //clignote une fois toutes les LED du graphique à barres

retard (500 );

myport.send_8bit_data(0) ;

}

boucle vide()

{

niveau int ;

niveau =lecture analogique (A0) ; //lire la tension d'entrée analogique

level =map(level, 0, 1023, 0, 80);// limite la tension de 0 à 80

//augmenter ou diminuer le niveau du graphique à barres selon l'entrée

if((niveau<80) &&(niveau>70))myport.send_8bit_data(255);

elseif((niveau<=70) &&(niveau>60)) myport.send_8bit_data(127);

elseif((niveau<=60) &&(niveau>50)) myport.send_8bit_data(63);

elseif((niveau<=50) &&(niveau>40)) myport.send_8bit_data(31);

elseif((niveau<=40) &&(niveau>30)) myport.send_8bit_data(15);

elseif((niveau<=30) &&(niveau>20)) myport.send_8bit_data(7);

elseif((niveau<=20) &&(niveau>10))myport.send_8bit_data(3);

elseif((niveau<=10) &&(niveau>0)) myport.send_8bit_data(1);

elseif(level==0) myport.send_8bit_data(0);

}

Exemple 4 :obtenez une entrée numérique 8 bits à partir des commutateurs DIP et affichez la valeur sur le moniteur série

#include

IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9); //créer un objet port

configuration vide()

{

Serial.begin(9600); // initialise la communication série.

myport.set_IO_direction('I'); // définit la direction du port

Serial.println("test de port d'entrée 8 bits");

}

boucle vide()

{

int input_byt ;

input_byt =myport.get_8bit_data(); // lire l'état du commutateur DIP

Serial.print("entrée reçue ="); // et

Serial.println(input_byt); // affiche sa valeur

retard(1000);

}

Code

  • Bibliothèque Arduino pour port E/S 8 bits
Bibliothèque Arduino pour port IO 8 bitsC/C++
la bibliothèque crée un port IO 8 bits à partir de broches arduino et envoie/obtient une sortie/entrée numérique 8 bits
Aucun aperçu (téléchargement uniquement).

Schémas

Le port IO envoie ou obtient des données 8 bits directes à partir de différentes broches

Processus de fabrication

  1. Panneau LCD avec Arduino pour Flight Simulator
  2. Switch/Panneau LED avec Arduino pour FS2020
  3. Surveillance SMART de la température pour les écoles
  4. Matrice de clavier de prototypage à 64 touches pour Arduino
  5. Créer une zone sécurisée pour les appareils Android/iOS/Win10 par Arduino
  6. TFT Shield pour Arduino Nano - Démarrer
  7. Contrôler un cafard avec Arduino pour moins de 30 $
  8. Une entrée analogique isolée pour Arduino
  9. Robot pour une navigation intérieure super cool