CODE | Shift Register 8-Bit Binary Counter - Arduino Project 017

RonWang3 years ago (2023-10-07)电子编程 COD66

In this project, you’re going to use additional ICs (Integrated Circuits) in the form of shift registers in order to drive LEDs to count in binary (I will explain what binary is soon). Specifically, you will drive eight LEDs independently using just three output pins from the Arduino.

Project 17 Shift Register 8-Bit Binary Counter

/* Coding Ron Wang
   Sep.10th 2024
   Autaba support for coding hardware
   Project 17 Shift Register 8-Bit Binary Counter
 */
int latchPin = 8; //Pin connected to Pin 12 of 74HC595 (Latch)
int clockPin = 12; //Pin connected to Pin 11 of 74HC595 (Clock)
int dataPin = 11; //Pin connected to Pin 14 of 74HC595 (Data)
void setup() {
 //set pins to output
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
}
void loop() {
 //count from 0 to 255
 for (int i = 0; i < 256; i++) {
 //set latchPin low to allow data flow
 digitalWrite(latchPin, LOW);
 shiftOut(i);
 //set latchPin to high to lock and send data
 digitalWrite(latchPin, HIGH);
 delay(1000);
 }
}
void shiftOut(byte dataOut) {
 // Shift out 8 bits LSB first, on rising edge of clock
 boolean pinState;
 digitalWrite(dataPin, LOW); //clear shift register ready for sending data
 digitalWrite(clockPin, LOW);
 for (int i=0; i<=7; i++) { // for each bit in dataOut send out a bit
 digitalWrite(clockPin, LOW); //set clockPin to LOW prior to sending bit
 // if the value of DataOut and (logical AND) a bitmask
 // are true, set pinState to 1 (HIGH)
 if ( dataOut & (1<<i) ) {
 pinState = HIGH;
 }
 else {
 pinState = LOW;
 }
 //sets dataPin to HIGH or LOW depending on pinState
 digitalWrite(dataPin, pinState); //send bit out on rising edge of clock
 digitalWrite(clockPin, HIGH);
 }
 digitalWrite(clockPin, LOW); //stop shifting out data
}

Arduino Shift Register 8-Bit Binary Counter Circuit

Arduino Shift Register 8-Bit Binary Counter Schematic

Share with Friends:

Related Articles

Electric Maker Beginner Tools Kit

Electric Maker Beginner Tools Kit

This assortment of tools has everything you need to get started tinkering with Sparkfun products and…

Centos Install OSCommerce 4.0

Centos Install OSCommerce 4.0

osCommerce is a Free shopping cart and open source Ecommerce software. You can choose to host your o…

Installing Redis on CentOS and Configuring Redis

Installing Redis on CentOS and Configuring Redis

CentOS安装Redis及redis启动与关闭、配置Install RedisIn this section you’ll add theEPEL repository, and then…

CODE | Bollean - Arduino Programming Basic

CODE | Bollean - Arduino Programming Basic

Arduino 程序基础,介绍Arduino程序的基本组成,第一部分编写了10个例子,关于变量及变量名称,串口监视器,if循环,for循环,while循环等。第二部分介绍了函数,全局变量,局部变量和静…

HELLO RUBY Child Coding

HELLO RUBY Child Coding

HELLO RUBY儿童编程大冒险儿童编程思维启蒙读本3-6岁:《Hello Ruby儿童编程大冒险》English Version 英文网站  http://www.hellor…

CODE | Serial Monitor - Arduino Programming Basic

CODE | Serial Monitor - Arduino Programming Basic

Arduino 程序基础,介绍Arduino程序的基本组成,第一部分编写数个例程,讲解关于变量及变量名称,串口监视器,if循环,for循环,while循环等。第二部分介绍了函数,全局变量,局部变量和静…

Post a Comment

Anonymous

Feel free to share your thoughts and opinions here.