Výstup na 7 segment 4x 4digit přes AtTiny85

Tvoříte zajímavý projekt? Pochlubte se s ním.
Pravidla fóra
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
Odpovědět
Uživatelský avatar
SkullKeep
Příspěvky: 290
Registrován: 23 srp 2017, 18:51
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Výstup na 7 segment 4x 4digit přes AtTiny85

Příspěvek od SkullKeep » 21 úno 2018, 11:47

Každý někdy potřebuje zjisti jestli z arduina nebo nějakého obvodu něco leze. Hlavně pokud jde o proměnné. Připojovat to k PC a lovit nastavení je občas pruda, proto jsem vymyslel tento projekt. Datový výstup ze zapojení do tohoto přípravku je buď skrz RX pin nebo klasické zpojení 7 segmetnu. V budoucnu přibude přes destičku s chipem CP1202 a MicroUSB. Nemusí být 2x MAX7219 CWG 8-Digit Digital Tube Display Control Module Red, pokud se použije jen jeden modul je nutná úprava programu.

Obrázky projektu:
Horní Strana
Horní Strana
Spodní Strana
Spodní Strana
Zkouška funkčnosti
Zkouška funkčnosti
Schéma zapojení:
Schéma zapojení
Schéma zapojení
Soupis položek + odkazy na nákup:

1x CP2102 MICRO USB to UART TTL Module
jednostranné PCB 5x7CM
2x MAX7219 CWG 8-Digit Digital Tube Display Control Module Red
6x propojovací káblík
1x Attiny85
1x DIP8 IC Sockets
8x pin

Program pro AtTiny85:
Testovací program:

Kód: Vybrat vše

//We always have to include the library
#include "LedControl.h"

#define DIN A1
#define CS A3
#define CLK A2
/*
  Now we need a LedControl to work with.
 ***** These pin numbers will probably not work with your hardware *****
  pin 12 is connected to the DataIn
  pin 11 is connected to the CLK
  pin 10 is connected to LOAD
  We have only a single MAX72XX.
*/
LedControl lc = LedControl(DIN, CLK, CS, 2);

/* we always wait a bit between updates of the display */
int delaytime = 250;

/**********************************/
void setup() {

  for (int index = 0; index < lc.getDeviceCount(); index++) { //resetovani dalsich segmentu
    lc.shutdown(index, false);
  }
  /* Set the brightness to a medium values */
  lc.setIntensity(0, 4);
  lc.setIntensity(1, 4);
  /* and clear the display */
  lc.clearDisplay(0);
  lc.clearDisplay(1);
}
/**********************************/
void scrollDigits() {
  for (byte i = 0; i < 16; i++) {
    lc.setDigit(0, 7, i, false);
    lc.setDigit(0, 6, i, false);
    lc.setDigit(0, 5, i, false);
    lc.setDigit(0, 4, i, false);
    lc.setDigit(0, 3, i, false);
    lc.setDigit(0, 2, i, false);
    lc.setDigit(0, 1, i, false);
    lc.setDigit(0, 0, i, false);
    lc.setDigit(1, 7, i, false);
    lc.setDigit(1, 6, i, false);
    lc.setDigit(1, 5, i, false);
    lc.setDigit(1, 4, i, false);
    lc.setDigit(1, 3, i, false);
    lc.setDigit(1, 2, i, false);
    lc.setDigit(1, 1, i, false);
    lc.setDigit(1, 0, i, false);
    delay(delaytime);
  }
  lc.clearDisplay(0);
  lc.clearDisplay(1);
}
/**********************************/
void loop() {
  
  scrollDigits();
}
V dalším updatu bude program pro komunikaci přes RX pin anebo přes MicroUSB.
:twisted: :?: :arrow: :geek: P. Q. M.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů