Съдържание:

Брояч, използващ MAX7221: 4 стъпки
Брояч, използващ MAX7221: 4 стъпки

Видео: Брояч, използващ MAX7221: 4 стъпки

Видео: Брояч, използващ MAX7221: 4 стъпки
Видео: Умные часы Mafam MX5: что нужно знать // Часы с телефонными звонками по Bluetooth 2024, Ноември
Anonim
Брояч, използващ MAX7221
Брояч, използващ MAX7221

Създаване на брояч, който се увеличава при натискане на бутон с помощта на MAX7221.

Стъпка 1: Части

MAX7221 или MAX7219

Превключване

4 7-сегментен дисплей (общ катод)

2 резистора: 10k и 9.53k (използвах 9.1k и все още работи)

Arduino

Стъпка 2: Изграждане на веригата

Изграждане на веригата
Изграждане на веригата
Изграждане на веригата
Изграждане на веригата
Изграждане на веригата
Изграждане на веригата

Записах само пиновете, които използвах, можете да намерите пълното оформление на щифтовете в листа с данни или аз го прикачих. Потърсете вашия 7-сегментен дисплей, защото той вероятно ще се различава от моя, но процедурата е същата.

1. Свържете цифри 0 - 3 на MAX7221 към цифри 1 - 4 на дисплея. Цифрата MAX 0 се свързва с цифрата 1 на дисплея и т.н. Дисплеите са просто нестандартни и започват от 1 вместо от 0.

2. Свържете сегментите A - G на MAX7221 към сегментите A - G на дисплея.

3. Захранване и заземяване на MAX. VCC отива към пин 19. 10k резисторът също е свързан към щифт 19 и 18. Земята отива към щифтове 4 и 9.

4. MAX7221 комуникира с Arduino чрез SPI (сериен периферен интерфейс). В този случай са необходими само 3 проводника, защото не използвам MISO (Master In Slave Out). На MAX7221 свържете щифт 1 (Din) към Arduino, в моя случай използвах пин 12. Това е вашият MOSI (Master Out Slave In) или данните. Пин 12 на MAX е CS (Chip Select Input) и е начинът, по който данните се зареждат в регистъра за смяна, свързах това към пин 9 на Arduino. Последната връзка е CLK, която е пин 13 на MAX, свързах това към пин 10 на Arduino.

Уверете се, че захранвате и заземявате през Arduino, използвайки 5 волта. Натъкнах се на проблема, при който моят Arduino не даваше на дъската ми достатъчно мощност.

Това е за листа с данни MAX7221. Също така откъде идват снимките.

www.mouser.com/datasheet/2/256/max7219-max…

Стъпка 3: Превключвателят

Превключвателят
Превключвателят

Свързах превключвателя от схемата по -горе. Намерено на

Използвах пин 8 на Arduino за управление на превключвателя и 10k резистор.

Стъпка 4: Код

Използвах библиотеката LedControl.h, намерена на GitHub, и основния им код, за да включа MAX7221. След това промених кода, за да брои от 0 - 9999, когато бутонът е натиснат.

#include "LedControl.h"

бутон int = 8;

LedControl lc = LedControl (12, 10, 9, 1);

void setup () {

pinMode (бутон, INPUT);

lc.shutdown (0, false); // MAX7221 е в режим на пестене на енергия, така че трябва да го събудим

lc.setIntensity (0, 15); // Настройка на яркостта, макс 15

lc.clearDisplay (0); // изчистване на дисплея

}

void loop () {

int state = digitalRead (бутон);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

докато (1) {

state = digitalRead (бутон);

while (състояние == 1) {

state = digitalRead (бутон);

lc.setDigit (0, 3, i, false);

i ++;

забавяне (100); // можете да се забъркате с това

ако (i == 10) {

i = 0;

j ++;

ако (j == 10) {

j = 0;

k ++;

ако (k == 10) {

k = 0;

l ++;

ако (l == 10) {

докато (1) {

lc.setRow (0, 0, 0x3E); // когато дисплеят достигне 9999, той ще покаже U - 1

lc.setRow (0, 1, 0x1); // В десетична стойност Hexi

lc.setRow (0, 2, 0x1);

lc.setDigit (0, 3, 1, невярно);

}

}

lc.setDigit (0, 0, l, невярно);

}

lc.setDigit (0, 1, k, невярно);

}

lc.setDigit (0, 2, j, невярно);

}

}

}

}

Препоръчано: