3 Arduino Pins to 24+ Output Pins (6 / 7 stap)

Stap 6: De belangrijkste Code


Sluit van het circuit zoals afgebeeld. Vervolgens upload de gegeven code die kan worden gebruikt om individuele pinnen van de registers. Deze code is speciaal ontworpen om te controleren van de Relais. Ze kunnen ook worden gebruikt om een grote LED chaser, die je alleen hoeft te wijzigen van de code op basis van de toepassing.

Ten eerste zal ik het uitleggen van de fundamentele regels die moeten worden gewijzigd, afhankelijk van het aantal Shift registreert. De coderegel die heeft

 //How many of the shift registers - change this #define number_of_74hc595s 1 

Zoals de naam al dat u dient het aantal shift register-modules die u gebruikt suggereert. Het programma is beperkt tot een maximum van 40 + Shift registreert.

 setRegisterPin(2, HIGH); setRegisterPin(3, HIGH); setRegisterPin(4, LOW); setRegisterPin(5, HIGH); setRegisterPin(7, HIGH); writeRegisters(); 

Deze coderegel is de primaire functie die u gebruiken kunt om te controleren de pinnen van de shift register. De regel "writeRegisters()" is de functie die moet worden aangeroepen inorder om te sturen de gegevens naar de Shift-Register.Suppose die u wilt beheren de 24e pin van de derde werktijd registreren module vervolgens de code zal worden

 setRegisterPin(24, HIGH); 

Stel dat u wilt instellen van de pinnen, zodat ze allemaal laag worden en vervolgens de functie zal worden

 clearRegisters(); 

Tot slot de algemene code voor het beheersen van de pennen is hieronder gegeven en ik heb ook de code voor het programma bijgevoegd. Dus in deze code de volgende pinnen zijn hoog ingesteld en kunnen opnieuw worden ingesteld met behulp van de functie duidelijk register. Ik gebruik 3 shift register modules, dus je hebt om te veranderen van de code als u 2 shift registers. Als alle gaat ook de output als zijn zal weergegeven in de video hierboven. Gebruik dit basisidee dat kunt u cool microcontroller projecten ontwerpen.

CODE:

int SER_Pin = 11; 14 pin op de 75HC595 int RCLK_Pin = 8; pin 12 op de 75HC595 int SRCLK_Pin = 12; PIN 11 op de 75HC595 //How veel van de registers van de shift - wijzigen deze #define number_of_74hc595s 3 //do niet aanraken #define numOfRegisterPins number_of_74hc595s * 8 Booleaanse registers [numOfRegisterPins]; void setup {pinMode (SER_Pin, OUTPUT) pinMode (RCLK_Pin, OUTPUT); pinMode (SRCLK_Pin, OUTPUT); //reset alle pinnen registreren int SER_Pin = 11; //pin 14 on the 75HC595 int RCLK_Pin = 8; //pin 12 on the 75HC595 int SRCLK_Pin = 12; //pin 11 on the 75HC595 //How many of the shift registers - change this #define number_of_74hc595s 3 //do not touch #define numOfRegisterPins number_of_74hc595s * 8 boolean registers[numOfRegisterPins]; void setup(){ pinMode(SER_Pin, OUTPUT); pinMode(RCLK_Pin, OUTPUT); pinMode(SRCLK_Pin, OUTPUT); //reset all register pins clearRegisters(); writeRegisters(); } //set all register pins to LOW void clearRegisters(){ for(int i = numOfRegisterPins - 1; i >= 0; i--){ registers[i] = LOW; } writeRegisters(); } //Set and display registers //Only call AFTER all values are set how you would like (slow otherwise) 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); } //set an individual pin HIGH or LOW void setRegisterPin(int index, int value){ registers[index] = value; } void loop(){ setRegisterPin(0, LOW); setRegisterPin(1, HIGH); setRegisterPin(2, LOW); setRegisterPin(3, HIGH); setRegisterPin(4, LOW); setRegisterPin(5, HIGH); setRegisterPin(6, LOW); setRegisterPin(7, HIGH); setRegisterPin(8, LOW); setRegisterPin(9, HIGH); setRegisterPin(10, LOW); setRegisterPin(11, HIGH); setRegisterPin(12, LOW); setRegisterPin(13, HIGH); setRegisterPin(14, LOW); setRegisterPin(15, HIGH); setRegisterPin(16, LOW); setRegisterPin(17, HIGH); setRegisterPin(18, LOW); setRegisterPin(19, HIGH); setRegisterPin(20, LOW); setRegisterPin(21, HIGH); setRegisterPin(22, LOW); setRegisterPin(23, HIGH); writeRegisters(); delay(500); clearRegisters(); setRegisterPin(0, HIGH); setRegisterPin(1, LOW); setRegisterPin(2, HIGH); setRegisterPin(3, LOW); setRegisterPin(4, HIGH); setRegisterPin(5, LOW); setRegisterPin(6, HIGH); setRegisterPin(7, LOW); setRegisterPin(8, HIGH); setRegisterPin(9, LOW); setRegisterPin(10, HIGH); setRegisterPin(11, LOW); setRegisterPin(12, HIGH); setRegisterPin(13, LOW); setRegisterPin(14, HIGH); setRegisterPin(15, LOW); setRegisterPin(16, HIGH); setRegisterPin(17, LOW); setRegisterPin(18, HIGH); setRegisterPin(19, LOW); setRegisterPin(20, HIGH); setRegisterPin(21, LOW); setRegisterPin(22, HIGH); setRegisterPin(23, LOW); writeRegisters(); delay(500); clearRegisters(); } writeRegisters(); } //set alle registreren pinnen te lage nietig clearRegisters() {voor (int ik = numOfRegisterPins - 1; ik > = 0; i--) {registers [i] = laag;} writeRegisters();} //Set en display registers //Only bellen nadat alle waarden zijn ingesteld hoe u zou willen (anders langzame) nietig writeRegisters() {digitalWrite (RCLK_Pin, laag); voor (int ik = numOfRegisterPins - 1; ik > = 0; i--) {digitalWrite (SRCLK_Pin, laag); int val = registers [i]; digitalWrite (SER_Pin val); digitalWrite (SRCLK_Pin, hoge); } digitalWrite (RCLK_Pin, hoge); } //set een persoonlijke pin hoog of laag void setRegisterPin (int index, int value) {registers [index] = waarde;} void loop {setRegisterPin (0, laag); setRegisterPin (1, hoog) setRegisterPin (2, LOW); setRegisterPin (3, hoog); setRegisterPin (4, LOW); setRegisterPin (5, hoog); setRegisterPin (6, LOW); setRegisterPin (7, hoge); setRegisterPin (8, LOW); setRegisterPin (9, hoge); setRegisterPin (10, laag); setRegisterPin (11, hoge); setRegisterPin (12, laag); setRegisterPin (13, hoge); setRegisterPin (14 LAAG); setRegisterPin (15, hoge); setRegisterPin (16, laag); setRegisterPin (17, hoge); setRegisterPin (18, laag); setRegisterPin (19, hoge); setRegisterPin (20, laag); setRegisterPin (21, hoge); setRegisterPin (22, laag); setRegisterPin (23, hoge); writeRegisters(); delay(500); int SER_Pin = 11; //pin 14 on the 75HC595 int RCLK_Pin = 8; //pin 12 on the 75HC595 int SRCLK_Pin = 12; //pin 11 on the 75HC595 //How many of the shift registers - change this #define number_of_74hc595s 3 //do not touch #define numOfRegisterPins number_of_74hc595s * 8 boolean registers[numOfRegisterPins]; void setup(){ Serial.begin(9600); pinMode(SER_Pin, OUTPUT); pinMode(RCLK_Pin, OUTPUT); pinMode(SRCLK_Pin, OUTPUT); //reset all register pins clearRegisters(); writeRegisters(); } //set all register pins to LOW void clearRegisters(){ for(int i = numOfRegisterPins - 1; i >= 0; i--){ registers[i] = LOW; } writeRegisters(); } //Set and display registers //Only call AFTER all values are set how you would like (slow otherwise) 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); } //set an individual pin HIGH or LOW void setRegisterPin(int index, int value){ registers[index] = value; } void loop(){ for(int i = 0;i < numOfRegisterPins;i++) { setRegisterPin(i , HIGH); Serial.println(i); writeRegisters(); delay(70); clearRegisters(); } clearRegisters(); for(int i = 24; i > 0; i--) { setRegisterPin(i , HIGH); writeRegisters(); Serial.println(i); delay(70); clearRegisters(); } clearRegisters(); } setRegisterPin (0, hoge); setRegisterPin (1, laag); setRegisterPin (2, HIGH); setRegisterPin (3, laag); setRegisterPin (4, HIGH); setRegisterPin (5, laag); setRegisterPin (6, hoge); setRegisterPin (7, laag); setRegisterPin (8, hoge); setRegisterPin (9, laag); setRegisterPin (10, hoge); setRegisterPin (11, laag); setRegisterPin (12, hoge); setRegisterPin (13, laag); setRegisterPin (14, hoge); setRegisterPin (15, laag); setRegisterPin (16, hoge); setRegisterPin (17, laag); setRegisterPin (18, hoge); setRegisterPin (19, laag); setRegisterPin (20, hoge); setRegisterPin (21, laag); setRegisterPin (22, hoge); setRegisterPin (23, laag); writeRegisters(); delay(500);

Gerelateerde Artikelen

Arduino solar laden controller + output controle en gegevens registreren online met Xbee WiFi

Arduino solar laden controller + output controle en gegevens registreren online met Xbee WiFi

Een tijdje terug begon ik bezig met een zonne-heffing controller, het was gebaseerd op een PIC-microcontroller, een 20 x 4 tekens weergeven en de code is geschreven in assembler. Het werkte goed en werkte nog steeds toen ik besloot dat ik wilde meer
C/C++ nl Arduino: Pines

C/C++ nl Arduino: Pines

Nl el Arduino, toda la información que entra y verkoop, lo hace a través de "pines". Los pines nl el Arduino zoon las conexiones que están een los lados y nl los cuales se pueden verbinden kabels como se ve nl la foto.Nl este instructable se con
Vijf Arduino Pin LED Matrix dobbelstenen

Vijf Arduino Pin LED Matrix dobbelstenen

welkom. Dit project maakte volledig en totaal Simonfrfr met uitzondering van de elektronische componenten. U zult een Arduino UNO ($30) breadboard ($3-$50) jumper draden ($3-$12) vijf Pin LED dobbelstenen Matrix van Newton Labs op newtonlabs.weebly.c
Een gemakkelijke manier om controle je Arduino Pins van het internet. (Geen port forwarding)

Een gemakkelijke manier om controle je Arduino Pins van het internet. (Geen port forwarding)

Controle Arduino pinnen van het internet, zonder gebruik te maken van complexe haven port forwarding opstellingen op uw firewall.Zolang de Arduino is aangesloten op uw netwerk en een geldig IP-adres heeft u zal zitten kundig voor wijzigen dePIN statu
Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

het toevoegen van een LCD-scherm aan de Arduino projecten kan echte waarde toevoegen de kosten doen dus kan echter aanzienlijk. Niet een financiële kosten - u kunt oprapen 16 (tekens) x 2 (rijen) LCD voor zo weinig zoals £3,50. De kosten is het telle
Arduino draagbare Weather Monitor, hoogtemeter, temperatuur, vochtigheid, met behulp van DHT11 en BMP85 met LCD-scherm met behulp van slechts 3 pins

Arduino draagbare Weather Monitor, hoogtemeter, temperatuur, vochtigheid, met behulp van DHT11 en BMP85 met LCD-scherm met behulp van slechts 3 pins

ik heb dit project, omdat ik vaak bergen zoals in de afbeelding beklimmen en ik moet weten de hoogte, de temperatuur en ook wijzigingen in de weersomstandigheden, soms in slechts enkele minuten het weer krijgen zeer slecht, met een zeer dichte mist,
Arduino 16 LEDs met behulp van twee 74HC595 shift registers (onbeperkt pins)

Arduino 16 LEDs met behulp van twee 74HC595 shift registers (onbeperkt pins)

Dit is mijn eerste instructable, hoop dat u van het zult houden. Ik heb gespeeld rond met LED's voor een tijdje en ik realiseerde me dat ik vrij veel beperkt met Arduino pinnen ben en kan niet grote projecten waarvoor een heleboel pinnen. Dit is een
ATtiny85 & ATtiny84 analoge Pins seriële communicatie, etc.

ATtiny85 & ATtiny84 analoge Pins seriële communicatie, etc.

ik met behulp van een ATtiny84 of een ATtiny85 op mijn projecten. Ze kunnen besparen een paar centen en het ontwerp een beetje kleiner te maken. De beste instructie voor de oprichting van deze chips te gebruiken met de Arduino IDE is op de website va
Hack een HC SR04 op een 3-pin sensor

Hack een HC SR04 op een 3-pin sensor

Ik hoop dat jullie allemaal hebben gehoord van dat dure-maar-geweldig parallax ping))) sensor. Ik kan niet een van hen het mijn budget ontploffing in uiterst kleine kleine stukjes puin rondzweven kopen (30$ ik bedoel). Dus wat doe je? letterlijk kapp
Arduino aangedreven temperatuursensor met LCD Output eerste tijd auteur vermelding

Arduino aangedreven temperatuursensor met LCD Output eerste tijd auteur vermelding

Nooit geweest een kinda man van de wedstrijd, maar ik ging vooruit en ingevuld aan de eerste wedstrijd voor de auteur van de tijd, als u graag mijn intructable of zelfs alleen maar geleerd iets nieuws en denk ik heb verdiend uw stemming doe! =]Hallo
Log output van de Arduino voor dagen met een BeagleBone

Log output van de Arduino voor dagen met een BeagleBone

Hier is een snelle hack voor het debuggen van Internet of Things projectenLaten we zeggen u een mooie, Internet-verbonden Arduino project gebouwd met een fancy webinterface bediend door, bijvoorbeeld de Ethernet-shield. Na één of twee dagen het een o
Arduino wachtwoord beveiligingssysteem met magnetische deur sensoren

Arduino wachtwoord beveiligingssysteem met magnetische deur sensoren

In deze handleiding Instructables zal ik u tonen hoe maak je je eigen wachtwoord beveiligingssysteem met behulp van de Arduino uno bestuur en sommige schakelopties magnetische deur. Ik maakte mijn eigen circuit met behulp van de ATmega328 micro contr
Arduino Bluetooth gecontroleerde elektrische deuropener

Arduino Bluetooth gecontroleerde elektrische deuropener

Hallo! In deze handleiding Instructables zal ik u tonen hoe te maken van uw eigen Bluetooth gecontroleerde systeem van de deur ontgrendelen met behulp van de Arduino uno board. Ik maakte mijn eigen circuit met behulp van de ATmega328 micro controller
Arduino wachtwoord openen deur-beveiligingssysteem

Arduino wachtwoord openen deur-beveiligingssysteem

Hallo! In deze handleiding Instructables zal ik u tonen hoe om uw eigen wachtwoord deur systeem te ontgrendelen met behulp van de Arduino uno board te maken. Ik maakte mijn eigen circuit met behulp van de ATmega328 micro controller, maar dit is een o