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
  • Použitý hardware
  • Schéma zapojení
  • Funkce
  • Code
  • Analogový vstup (AnalogIn)
  • Analogový výstup (AnalogOut)
  1. Hardware a programování
  2. Tutoriály
  3. Základní tutoriály

Analog Read/Write

PreviousDigital ReadNextPWM Fade

Last updated 6 years ago

Tento příklad znázorňuje, jak vyčíst analogovou hodnotu napětí pomocí zařízení IODAG3E. Jako příklad budeme pomocí této hodnoty pozorovat pozici otočení potenciometru. Toto natočení budeme monitorovat pomocí sériové linky v PC. Taktéž budeme měnit hodnotu napětí na LED a tím ji stmívat.

Použitý hardware

  • IODAG3E

  • 10kΩ potenciometr

  • LED

  • 220Ω rezistor

Schéma zapojení

Potenciometr zapojíme tak abychom vytvořili jednoduchý dělič napětí. Potenciometr zapojíme mezi pin 3V3 a GND. Jezdec potenciometru poté zapojíme na pin Y23, který dokáže pracovat jako analogový vstup. LED poté připojíme k pinu Y25, který naopak dokáže pracovat jako analogový výstup viz a .

Funkce

Code

  /**AnalogOutInSerial
    * Reads an analog input pin, maps the result to a range from 0 to 1 and uses
    * the result to set the pulse width modulation (PWM) of an output pin.
    * Also prints the results to the Serial Monitor.
    */
#include "byzance.h"   // Include libraries for IODA.
Serial pc(SERIAL_TX, SERIAL_RX);   // Defines the comunication interface if the serial line , SPI, CAN is needen in the program.

AnalogOut aout(Y25);   
AnalogIn ain(Y23);
// the init routine runs only once when you press reset:
void init(){
  pc.baud(115200);   // set baud rate.
}
// the loop routine runs over and over agin forever:
void loop(){ 
  pc.printf("ain value =%3.3f%%\n",ain.read());
  aout=ain; 

  Thread::wait(100);   // Wait for 100ms.

}

 #include "byzance.h"
 Serial pc(SERIAL_TX, SERIAL_RX);

Analogový vstup (AnalogIn)

Převede napětí na pinu analogového vstupu v rozmezí 0 - 3.3V do digitální podoby a interpretuje ho číslem na škále 0-1.

 AnalogIn ain(pin_name);  // Analog input definition
printf(”ain value = %3.3f%%\n”, ain.read());

Analogový výstup (AnalogOut)

Funkce AnalogOut umožňuje definovat analogový výstup, který pomocí digitáně analogového převodníku dokáže na základě vstupní hodnoty této funkce měnit hodnotu napětí na výstupním pinu v rozsahu 0 - 3.3V . Procesor umožňuje definovat dva analogové výstupy, a to na pinech Y23 a Y25. Velikost napětí na výstupu je škálováno zápisem v rozsahu 0 - 1, kdy 1 je maximální napětí 3.3V.

AnalogOut aout(Y25);  // Analog output definition 

aout = 1.0f;   // Set maximum voltage to output (3,3V)
aout = 0.5f;   // Set half of maximum voltage to output (1,65V)

aout.read();   // Read voltage value set to output

Funkce init() se vyvolá při spuštění. Používa se pro inicializaci proměnných, pinových režimů apod. Funkce se spustí pouze jednou při spuštění nebo resetování desky. V tomto případě pouze inicializuje rychlost komunikace sériové linky.

// the init routine runs only once when you press reset:
void init(){
  pc.baud(115200);   // set baud rate.
}

Funkce loop() je nekonečná smyčka, ve které se přečte hodnota napětí na jezdci potenciometru do proměnné ain. Tato hodnota se vypíše do sériové linky a nastaví se pomocí ní výstupní hodnota napětí na LED diodě (aout).

// the loop routine runs over and over agin forever:
void loop(){ 
  pc.printf("ain value =%3.3f%%\n",ain.read());
  aout=ain; 
  
 Thread::wait(100);
}

V poslední části kódu je vlákno programu uspáno na 100 milisekund.

 Thread::wait(100);

Zařízení IODA je vybavené ADC převodníky a na některých svých vstupech konektoru XY je schopné snímat analogovou hodnotu napětí a interpretovat tuto hodnotu číslem v programu. Hodnota tohoto vstupního napětí musí být v rozsahu 0-3.3V a lze ji interpretovat několika způsoby. Buď jí lze interpretovat hodnotou float, která reprezentuje rozsah vstupního napětí desetiným číslem 0-1, nebo jí lze interpretovat celočíselným 16ti-bitovým číslem (uint16_t). Více o Analogovém vstupu se lze dozvědět v sekci . Následující kód převede vstupní hodnotu napětí, která je závislá na otočení potenciometru, do digitální podoby a nastaví pomocí ní výstupní hodnotu napětí na LED diodě. Otáčením tedy můžeme LED diodu stmívat a rozsvěcet.

V hlavičce programu je nutné importovat knihovny a . pomocí

Poté nasleduje konstruktor definující objekt .

Byzance Hardware API
Mbed API
sériové linky
Vstupy a výstupy
Analogové vstupy
Analogové výstupy