当前位置:首页 > 科学研究 > 电子编程 > 正文内容

Arduino Project 017 - Shift Register 8-Bit Binary Counter

RonWang1年前 (2024-09-10)电子编程959

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

版权声明:本文为原创文章,版权归donstudio所有,欢迎分享本文,转载请保留出处!

本文链接:http://www.donstudio.cn/?id=268

标签: Arduino

相关文章

 Arduino Project 043 - SD CardTemperature Datalogger

Arduino Project 043 - SD CardTemperature Datalogger

Todady I made a simple Arduino datalogger using SD card and DHT11  relative humidity and t...

C语言调试运行环境TurboC的安装

C语言调试运行环境TurboC的安装

上大学时学习《C语言程序设计》(第二版)作者谭浩强,大部分编程时间是在学校机房度过,每次点开桌面的TurboC图标,就开始在里面敲代码,然后保存程序Abc.C,下一步进行编译,如果编译成功的话,就可以...

Arduino Project 036 - DTH Temperature and Humid Sensor

Arduino Project 036 - DTH Temperature and Humid Sensor

The DHT11 Temperature and Humidity Sensor senses, measures and regularly reports the relative humidi...

 Arduino Project 037 - 18B20 Temperature Sensor

Arduino Project 037 - 18B20 Temperature Sensor

The DS18B20 Temperature Sensor is a digital temperature sensor capable of measuring temperatures wit...

Arduino Project 027 - Joystick Servo Control

Arduino Project 027 - Joystick Servo Control

In this tutorial, we are going to learn how to use Arduino and a joystick to control two servo motor...

Arduino Programming Basic - Input and Outpput

Arduino Programming Basic - Input and Outpput

The pins on the Arduino can be configured as either inputs or outputs. This document explains the fu...