Public Documentation
  • Introduction
  • Getting started
    • Introduction
    • 1. Welcome Page
    • 2. Introduction (Beginner's Guide)
  • Portal Tools
    • Blocko
      • Ůvod do blocka
      • Flip-flop
      • REST-API bloček
    • Grid
      • Úvod do GRID
      • Základní Tlačítko (základy GRID)
      • vylepšený Přepínač (stylování a pokročilé možnosti GRID)
      • text generátor button (messeage type, two elements one widget)
      • graf (pokročilé funkce GRID)
      • Slider (User class v GRIDu)
      • Styly a jejich použití
  • Cloud
    • Cloud
    • Instancies
    • Rest-Api
  • General
    • What we plan
  • Hardware a programování
    • Úvod
      • Nahrání prvního programu
    • Konektivita
      • Specifikace zdroje internetu
      • GSM
      • 6LowPAN
      • Komunikace s portálem
      • Přepínání mezi servery
    • Hardware
      • Základní jednotky
        • IODAG3E
          • Rozhraní a periférie
          • Konektor X a Y
          • Napájení
          • Připojení zdroje k VBAT
          • Paměti
          • Technické specifikace
          • Schémata
        • IODAG3L
      • Rozšiřující moduly
        • GSM shield
        • LED shield
        • Relay shield
        • RFID shield
        • Ultrasonic shield
        • Meteo shield
        • Movement shield
        • PIR shield
        • RGB Displej shield
        • Serial shield
      • Ostatní
        • DevKitG3
          • Schéma
        • TK3G
          • Schéma
        • ZPPG3
          • Schéma
        • WEXP
    • Programování HW
      • Architektura FW
        • Aktualizace FW
        • Autobackup
      • Struktura programu
      • Byzance API
        • Vstupy a výstupy do Portálu
        • Callback Busy
        • Odložený restart
        • Callbacky připojení
        • Uživatelská makra
      • MBED API
        • Vstupy a výstupy
        • Komunikační rozhraní
        • Časování
        • RTOS
      • Knihovny
        • DHT
        • DS1820
        • Dali
        • EdgeStruct
        • I2CWrapper
        • Knock
        • MFRC522
        • MFRC522::MIFARE_Key
        • MPU9150
        • ms5637
        • OneWire
        • PCA9536
        • RGB_matrix
        • RollerDrive
        • SHT21
        • ST7565
        • Servo
        • TCA6424A
        • TLC59116
        • TripleSevenSeg
        • MFRC522::Uid
        • WS2812
        • WakeUp
      • Offline programování
        • Vlastní IDE
        • Upload kódu z GUI
        • Upload kódu z konzole
        • Upload kódu Drag&drop
    • Tutoriály
      • Datum a čas (RTC)
      • Komunikace po sériové lince (UART) s PC
        • Konfigurace sériové linky v PC
        • Programování sériové linky
      • Základní tutoriály
        • Digital Read
        • Analog Read/Write
        • PWM Fade
        • Timer/Ticker
        • State Change Detection
        • Ovládání LED modulu
        • BusOut
        • HC-SR04 Senzor
      • Pokročilé
    • Správa a diagnostika
      • Zdroj restartu
      • LED modul
      • Identifikace zařízení
      • Monitoring parametrů
      • Vytížení zařízení
      • Webové rozhraní
        • Základní přehled
        • Správce firmware
        • Vlákna
        • Definované vstupy
        • Konfigurace MQTT
        • Nastavení
      • Bootloader
        • Režimy bootloaderu
        • Command mód
        • Další vlastnosti bootloaderu
      • Webová konzole
      • Konfigurace zařízení
        • Confighash
      • Omezení konfigurace
        • Konfigurace
        • Binárky
        • Omezení MQTT
        • Lowpan
    • Knowledge base
      • Náhodná čísla
      • Watchdog
      • Paměť RAM
Powered by GitBook
On this page
  • Hardware
  • Zapojení X konektoru
  • Konfigurace a zapojení
  • Schema
  • Software
  1. Hardware a programování
  2. Hardware
  3. Rozšiřující moduly

LED shield

PreviousGSM shieldNextRelay shield

Last updated 7 years ago

Shield slouží k zobrazení dat pomocí trojmístného sedmisegmentového displeje, LED diod či bargrafu, RGB diod nebo pomocí volitelně připojitelného digitálně řízeného LED pásku s čipy WS2812.

Hardware

Zapojení X konektoru

X01

X03

X05

X07

X09

X11

X13

X15

USR

VBUS

SDA

> 6V

X00

X02

X04

X06

X08

X10

X12

X14

3V3

GND

BTN

SCL

DAT

3.3 V

GND

  • SCL a SDA - komunikace po I2C sběrnici s expandery pro řízení LED diod, displeje a RGB displeje

  • DAT - datový vodič pro LED pásky

  • BTN - tlačítko

Konfigurace a zapojení

  • X3 - svorkovnice pro připojení LED pásku (5 V, GND a datový vodič) s řadičem WS2812; datový vodič chráněn rezistorem, proudová pojistka pro 5 V (1 A)

  • LED2 - LED11 - LED diody pro zobrazení bargrafu

  • LED1 - trojmístný sedmisegmentový displej

  • D1, D2 - RGB LED diody

  • 3V - detekce napětí 3,3 V

  • 5V - detekce 5 V napájení

  • SJ1, SJ2 - volba napájení pro LED pásek

Schema

Software

#include "byzance.h"
#include "TripleSevenSeg.h"
#include "TLC59116.h"

#define BYZANCE_OVER_USB 0

#if BYZANCE_OVER_USB
    USBSerial    usb(0x1f00, 0x2012, 0x0001, false);
#else
    Serial        pc(SERIAL_TX, SERIAL_RX); // tx, rx
#endif

// Common variables
uint32_t tmp32 = 0;
InterruptIn btnUsr(USER_BUTTON);
volatile bool button_usr_clicked= 0;
uint32_t i = 0;

// Object for LED segment display and LED bargraph
TripleSevenSeg * seven_segment;
TLC59116 * pwm_driver;


/*
 * Prototyp, který bude vybírat, kam se konzole vypisuje
 */
void to_computer(const char* format, ...);

void button_usr_fall_callback(){
    button_usr_clicked = 1;
}

void init(){

#if BYZANCE_OVER_USB
    ByzanceLogger::init(&usb);
#else
    ByzanceLogger::init(&pc);
    pc.baud(115200);
#endif

    // Attach callback for user button
    btnUsr.fall(&button_usr_fall_callback);

    // sSven_segment
    seven_segment = new TripleSevenSeg();
    seven_segment->is_initialized();
    Thread::wait(100);

    // PWM driver init
    pwm_driver = new TLC59116();
    pwm_driver->initialize(X07, X06);     // I2C SDA, I2C SCL
}

void loop(){

    // Change global PWM dimming
    if(button_usr_clicked){
        button_usr_clicked=0;
        to_computer("Button pressed.\n");
        pwm_driver->set_global_pwm(((i % 2) == 0) ? 2 : 0xFF);    // Choose 2 or 255 global PWM value.

    }

    // Display generated numbers from negativ to positive values with maximally two decimal digits.
    seven_segment->display_number(-120 + ((float)i++)/1 + 0.12, 2);

    // PWM dimming of the LED bargraph
    uint8_t pole[16];
    for (uint8_t j = 0; j < 16; j++) {
        pole[j] = i*5;
    }
    pwm_driver->set_all_channels(pole);

    // Wait some time
    Thread::wait(50);
}


void to_computer(const char* format, ...){
    char buffer[256];

    va_list arg;
    va_start (arg, format);
    vsnprintf(buffer, 256, format, arg);
    va_end (arg);

    #if BYZANCE_OVER_USB
        usb.printf(buffer);
    #else
        pc.printf(buffer);
    #endif
}