İçindekiler:

MAX7221'i Kullanan Sayaç: 4 Adım
MAX7221'i Kullanan Sayaç: 4 Adım

Video: MAX7221'i Kullanan Sayaç: 4 Adım

Video: MAX7221'i Kullanan Sayaç: 4 Adım
Video: Is the there an intended PCB layout for the MAX7219/MAX7221 I'm missing? (3 Solutions!!) 2024, Kasım
Anonim
MAX7221'i Kullanan Sayaç
MAX7221'i Kullanan Sayaç

MAX7221'i kullanarak bir düğmeye basıldığında artan bir sayaç oluşturma.

Adım 1: Parçalar

MAX7221 veya MAX7219

Değiştirmek

4 7-Segment Ekran (ortak katot)

2 Direnç: 10k ve 9.53k (9.1k kullandım ve hala çalışıyor)

Arduino

Adım 2: Devreyi Kurmak

Devreyi Kurmak
Devreyi Kurmak
Devreyi Kurmak
Devreyi Kurmak
Devreyi Kurmak
Devreyi Kurmak

Ben sadece kullandığım pinleri yazdım, pin düzeninin tamamını datasheet'te bulabilirsin ya da ben ekledim. 7-Segment Ekranınıza baktığınızdan emin olun çünkü muhtemelen benimkinden farklı olacaktır ancak prosedür aynıdır.

1. MAX7221'deki 0 - 3 Rakamlarını ekrandaki 1 - 4 Rakamlarına bağlayın. MAX basamağı 0, ekran basamağı 1'e vb. bağlanır. Ekranlar alışılmışın dışındadır ve 0 yerine 1'den başlar.

2. MAX7221'deki A - G Segmentlerini ekrandaki Segment A - G'ye bağlayın.

3. MAX'a güç ve toprak sağlayın. VCC pin 19'a gider. 10k direnç de pin 19 ve 18'e bağlanır. Toprak 4 ve 9 pinlerine gider.

4. MAX7221, Arduino ile SPI (Seri Çevre Birimi Arayüzü) aracılığıyla iletişim kurar. Bu durumda MISO (Master In Slave Out) kullanmadığım için sadece 3 kabloya ihtiyaç var. MAX7221'de pin 1'i (Din) Arduino'ya bağlayın, benim durumumda pin 12'yi kullandım. Bu sizin MOSI'niz (Master Out Slave In) veya verileriniz. MAX üzerindeki Pin 12 CS'dir (Chip Select Input) ve verilerin Shift Register'a nasıl yüklendiğidir, bunu Arduino'daki pin 9'a bağladım. Son bağlantı MAX üzerindeki pin 13 olan CLK'dır, bunu Arduino'daki pin 10'a bağladım.

5 volt kullanarak Arduino üzerinden güç ve toprak sağladığınızdan emin olun. Arduino'mun kartıma yeterince güç vermediği bir problemle karşılaştım.

Bu, MAX7221 Veri Sayfası içindir. Ayrıca resimlerin nereden geldiği.

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

Adım 3: Anahtar

Anahtar
Anahtar

Anahtarı yukarıdaki şemadan bağladım. https://www.arduino.cc/en/tutorial/button adresinde bulunur.

Anahtarı kontrol etmek için Arduino'daki pin 8'i ve 10k'lık bir direnç kullandım.

4. Adım: Kod

MAX7221'i açmak için GitHub'da bulunan LedControl.h kitaplığını ve temel kodlarını kullandım. Daha sonra düğmeye basıldığında kodu 0 - 9999 arasında sayacak şekilde değiştirdim.

#include "LedControl.h"

int düğmesi = 8;

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

geçersiz kurulum() {

pinMode(düğme, GİRİŞ);

lc.shutdown(0, yanlış); // MAX7221 güç tasarrufu modunda, bu yüzden onu uyandırmamız gerekiyor

lc.setYoğunluk(0, 15); // Parlaklık ayarı, maksimum 15

lc.clearDisplay(0); // ekranı temizleme

}

boşluk döngüsü(){

int durum = digitalRead(düğme);

int ben = 0;

int j = 0;

int k = 0;

int l = 0;

süre(1){

durum = digitalRead(düğme);

while(durum == 1){

durum = digitalRead(düğme);

lc.setDigit(0, 3, ben, yanlış);

ben++;

gecikme(100); // bununla uğraşabilirsin

if(i == 10){

ben = 0;

j++;

if(j == 10){

j = 0;

k++;

if(k == 10){

k = 0;

l++;

if(l == 10){

süre(1){

lc.setRow(0, 0, 0x3E); // ekran 9999'a ulaştığında U -- 1 gösterecek

lc.setRow(0, 1, 0x1); // Onaltılık değerde

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

lc.setDigit(0, 3, 1, yanlış);

}

}

lc.setDigit(0, 0, l, yanlış);

}

lc.setDigit(0, 1, k, yanlış);

}

lc.setDigit(0, 2, j, yanlış);

}

}

}

}

Önerilen: