Operácie

Ovládanie RGB LED cez Processing: Rozdiel medzi revíziami

Z SensorWiki

Riadok 6: Riadok 6:
 
Naprogramujte RGB LED v prostredí AVR Studio na vývojovej doske a ovladanú pomocou softvéru Processing.org
 
Naprogramujte RGB LED v prostredí AVR Studio na vývojovej doske a ovladanú pomocou softvéru Processing.org
  
[[Obrázok:Arduino_Uno.jpg|400px|thumb|center|Vývojová doska Arduino UNO.]]
+
[[Obrázok:arduino-uno-pinout-diagram.avif|400px|thumb|center|Vývojová doska Arduino UNO.]]
  
 
'''Literatúra:'''  
 
'''Literatúra:'''  

Verzia zo dňa a času 11:03, 15. máj 2024

Záverečný projekt predmetu MIPS / LS2024 - Šimon Vretenička


Zadanie

Naprogramujte RGB LED v prostredí AVR Studio na vývojovej doske a ovladanú pomocou softvéru Processing.org

Súbor:Arduino-uno-pinout-diagram.avif
Vývojová doska Arduino UNO.

Literatúra:


Analýza a opis riešenia

Úloha bola inšpirovaná z cvičenia 7, v ktorom sme pomocou plnenia používali Led diódu. V tomto prípade sme používali RGB diódu OSTAMA51A5A. Postupovali sme nasledovne: 1. ZAPOJENIE Podľa datacheetu Ledky OSTAMA51A5A sme si naštudovali schému a princíp zapojenia nožičiek diódy a následne zapojili do obvodu. Schéma zapojenia:

2. AVR Studio Kód, ktorý umožňuje riadiť RGB LED pomocou hodnôt posielaných z Processing aplikácie cez sériovú komunikáciu (UART).

  • Zadefinovanie pinov
   Červená (Red): PB3 (OCR2A)
   Zelená (Green): PB1 (OCR1A)
   Modrá (Blue): PB2 (OCR1B)
  • Definícia frekvencie CPU:

Definujeme frekvenciu mikrokontroléra na 16 MHz. Táto hodnota sa používa pri výpočtoch času a predeľov v časovačoch.

#define F_CPU 16000000UL
  • Časovače:

Pomocou funkcie setup_timers() inicializujeme časovače Timer1 a Timer2 pre PWM (Pulse Width Modulation).

 Timer1 je nastavený pre PWM na pinoch PB1 (OC1A) a PB2 (OC1B). Jeho top hodnota (ICR1) je nastavená na 255, čo umožňuje 8-bitový PWM.
 Timer2 je nastavený pre PWM na pine PB3 (OC2A).
  • Komunikácia cez UART:

Pomocou funkcie setup_uart() inicializujeme sériovú komunikáciu (UART) na rýchlosť 9600 baud. Následne sa vypočíta hodnota UBRR (UART Baud Rate Register) na základe frekvencie CPU a požadovanej baudovej rýchlosti.

  • Vysielanie a prijímanie pomocou UART:

Pomocou funkcie uart_transmit() budeme odosielať jeden bajt cez UART. Pracuje na princípe, že čaká, kým nie je UART Data Register prázdny, a potom pošle údaje. Taktiež pomocou funkcie uart_receive() budeme prijímať jeden bajt cez UART. Táto funkcia čaká, kým nie je pripravený nový bajt v UART Data Register, a potom ho vráti.

  • Nastavenie výstupných pinov:

Nastavujeme piny PB1, PB2 a PB3 ako výstupné. Tieto piny budú použité na ovládanie RGB LED.

  • Povolenie globálnych prerušení:

Na toto použijeme funkciu sei(), tá povolí globálne prerušenia, čo nám umožní obsluhu prerušení.

  • Slučka WHILE:

Kód v tejto slučke sa neustále opakuje. V každom oparkovaní sa prijme hodnota pre červenú, zelenú a modrú z Processing aplikácie cez UART. Hodnoty sa inverzne upravia (255 - hodnota), pretože farba 255 znamená maximálnu intenzitu a 0 znamená žiadnu intenzitu.

   Tieto hodnoty sa potom priradia k PWM registrom pre každú farbu:
       OCR2A = red; nastavuje PWM pre červenú LED na PB3.
       OCR1B = blue; nastavuje PWM pre modrú LED na PB2.
       OCR1A = green; nastavuje PWM pre zelenú LED na PB1.

3. Processing

RGB LED.

Nezabudnite doplniť schému zapojenia!

Schéma zapojenia LCD displeja.


Algoritmus a program

Algoritmus programu je....


#include <avr/io.h>

int main(void)
{
  unsigned int measuredValue;

  while (1)
  {
    /*  relax  */  
  }

  return(0);
}
#include <avr/io.h>

void adc_init(void);                                   // A/D converter initialization

unsigned int adc_read(char a_pin);

Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:

Zdrojový kód: zdrojaky.zip


Overenie

Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.

Aplikácia.

Video:

Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.