Pripojenie viacero tlačidiel cez A/D prevodník: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
| Riadok 23: | Riadok 23: | ||
== Analýza a opis riešenia == | == Analýza a opis riešenia == | ||
== Teoretický úvod == | === Teoretický úvod === | ||
Mikrokontrolér ATmega328P obsahuje vstavaný 10-bitový A/D prevodník (ADC – Analog to Digital Converter), ktorý prevádza analógové napätie na digitálnu hodnotu v rozsahu 0 – 1023. | Mikrokontrolér ATmega328P obsahuje vstavaný 10-bitový A/D prevodník (ADC – Analog to Digital Converter), ktorý prevádza analógové napätie na digitálnu hodnotu v rozsahu 0 – 1023. | ||
| Riadok 43: | Riadok 43: | ||
*možnosť nepresných hodnôt pri súčasnom stlačení viacerých tlačidiel. | *možnosť nepresných hodnôt pri súčasnom stlačení viacerých tlačidiel. | ||
== Použité komponenty == | === Použité komponenty === | ||
*Arduino / ATmega328P | *Arduino / ATmega328P | ||
Verzia z 15:01, 12. máj 2026
Záverečný projekt predmetu MIPS / LS2026 - Kristian Rostupytskyi
Zadanie
Cieľom projektu bolo pripojiť viacero tlačidiel k mikrokontroléru Arduino s čipom ATmega328P pomocou jedného analógového vstupu a A/D prevodníka. Projekt demonštruje možnosť rozlišovania viacerých stavov tlačidiel podľa rôznych hodnôt napätia získaných cez rezistorovú sieť.
Úlohou bolo:
- pripojiť 5 tlačidiel cez rezistory,
- využiť iba jeden analógový vstup mikrokontroléra,
- merať hodnotu napätia pomocou A/D prevodníka,
- zobrazovať zmeny hodnôt v konzole programu AVR Studio.

Literatúra:
Analýza a opis riešenia
Teoretický úvod
Mikrokontrolér ATmega328P obsahuje vstavaný 10-bitový A/D prevodník (ADC – Analog to Digital Converter), ktorý prevádza analógové napätie na digitálnu hodnotu v rozsahu 0 – 1023.
Každé tlačidlo bolo pripojené cez rezistor s odlišnou hodnotou. Po stlačení konkrétneho tlačidla vznikne na analógovom vstupe iné napätie, ktoré ADC prevedie na inú digitálnu hodnotu.
Vďaka tomu je možné pomocou jediného analógového vstupu rozlišovať viacero tlačidiel.
Výhody riešenia:
- úspora vstupných pinov mikrokontroléra,
- jednoduché zapojenie,
- možnosť rozšírenia o ďalšie tlačidlá.
Nevýhody:
- menšia presnosť pri väčšom počte tlačidiel,
- citlivosť na toleranciu rezistorov,
- možnosť nepresných hodnôt pri súčasnom stlačení viacerých tlačidiel.
Použité komponenty
- Arduino / ATmega328P
- 5 tlačidiel
- rezistory
- prepojovacie vodiče
- AVR Studio

Nezabudnite doplniť schému zapojenia! V texte by ste mali opísať základné veci zo zapojenia, samotná schéma nie je dostačujúci opis.

Algoritmus a program
Algoritmus programu využíva toto a toto, základné funkcie sú takéto a voláma ich tuto... Výpis kódu je nižšie...
#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
Ako ste overili funkciu, napríklad... 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 hotového zariadenia.

Video:
Čo by som urobil inak
Zamyslite sa spätne nad problémom, ktorý ste riešili a napíšte, čo sa vám nepodarilo a nabudúce by ste spravili inak.
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.