Bibliothèque de ports E/S 8 bits pour Arduino
Composants et fournitures
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Applications et services en ligne
|
À 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 bitsAucun aperçu (téléchargement uniquement).
Schémas
Le port IO envoie ou obtient des données 8 bits directes à partir de différentes brochesProcessus de fabrication
- Panneau LCD avec Arduino pour Flight Simulator
- Switch/Panneau LED avec Arduino pour FS2020
- Surveillance SMART de la température pour les écoles
- Matrice de clavier de prototypage à 64 touches pour Arduino
- Créer une zone sécurisée pour les appareils Android/iOS/Win10 par Arduino
- TFT Shield pour Arduino Nano - Démarrer
- Contrôler un cafard avec Arduino pour moins de 30 $
- Une entrée analogique isolée pour Arduino
- Robot pour une navigation intérieure super cool