start:arduino:74hc595:programmes
Ceci est une ancienne révision du document !
Table des matières
Programmes Arduino pour 74HC595
ShiftRegister74HC595 Bibliothèque Arduino
La bibliothèque Arduino ShiftRegister74HC595 simplifie l'utilisation des registres à décalage. Il vous permet de définir des broches individuelles de votre registre à décalage sur haut ou bas, tout comme les broches Arduino normales. Il supprime ainsi la surcharge de décalage des octets qui ont été créés avec des opérations compliquées au niveau des bits. Le réglage par exemple de la deuxième broche de votre registre à décalage ressemblerait simplement à
sr.set(2, HIGH);// mettre à 1 la sortie 2 du 74HC595
- Prog1.ino
/* ShiftRegister74HC595 - Bibliothèque pour un contrôle simplifié des registres à décalage 74HC595. Développé et maintenu par Timo Denk et ses contributeurs, depuis novembre 2014. Des informations supplémentaires sont disponibles sur https://timodenk.com/blog/shift-register-arduino-library/ Lâché dans le domaine public. */ #include <ShiftRegister74HC595.h> // create a global shift register object // parameters: <number of shift registers> (data pin, clock pin, latch pin) ShiftRegister74HC595<1> sr(0, 1, 2); void setup() { } void loop() { // setting all pins at the same time to either HIGH or LOW sr.setAllHigh(); // set all pins HIGH delay(500); sr.setAllLow(); // set all pins LOW delay(500); // setting single pins for (int i = 0; i < 8; i++) { sr.set(i, HIGH); // set single pin HIGH delay(250); } // set all pins at once uint8_t pinValues[] = { B10101010 }; sr.setAll(pinValues); delay(1000); // read pin (zero based, i.e. 6th pin) uint8_t stateOfPin5 = sr.get(5); sr.set(6, stateOfPin5); // set pins without immediate update sr.setNoUpdate(0, HIGH); sr.setNoUpdate(1, LOW); // at this point of time, pin 0 and 1 did not change yet sr.updateRegisters(); // update the pins to the set values }
Programme pour 74HC595 sans librairie
- Prog2.ino
int SER_Pin = 8; //pin 14 sur le 75HC595 int RCLK_Pin = 9; //pin 12 sur le 75HC595 int SRCLK_Pin = 10; //pin 11 sur le 75HC595 #define number_of_74hc595s 1 //Combien combinez-vous de 74HC595 ? Ne pas toucher si 1 seul #define numOfRegisterPins number_of_74hc595s * 8 boolean registers[numOfRegisterPins]; void setup(){ pinMode(SER_Pin, OUTPUT); pinMode(RCLK_Pin, OUTPUT); pinMode(SRCLK_Pin, OUTPUT); //Reset tous les pins du 74HC595 clearRegisters(); writeRegisters(); } //Place tous les pins du 74HC595 à l'état "OFF" void clearRegisters(){ for(int i = numOfRegisterPins - 1; i >= 0; i--){ registers[i] = LOW; } } //Enregistrer et afficher les valeurs dans le registre //Executer uniquement APRES que toutes les valeurs aient été programmées void writeRegisters(){ digitalWrite(RCLK_Pin, LOW); for(int i = numOfRegisterPins - 1; i >= 0; i--){ digitalWrite(SRCLK_Pin, LOW); int val = registers[i]; digitalWrite(SER_Pin, val); digitalWrite(SRCLK_Pin, HIGH); } digitalWrite(RCLK_Pin, HIGH); } //Place un pin du 74HC595 à l'état HAUT ou BAS void setRegisterPin(int index, int value){ registers[index] = value; } void loop(){ setRegisterPin(2, HIGH); setRegisterPin(3, HIGH); setRegisterPin(4, LOW); setRegisterPin(5, HIGH); setRegisterPin(7, HIGH); writeRegisters(); //Doit être exécuté pour appliquer les changements //Executer seulement une fois que toutes les valeurs ont été enregistrées comme vous le souhaitiez. }
/home/chanteri/www/fablab37110/data/attic/start/arduino/74hc595/programmes.1646736437.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)