Operácie

Zbernica i2c: PCF8574: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Bez shrnutí editace
StudentMIPS (diskusia | príspevky)
Bez shrnutí editace
 
(12 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených)
Riadok 1: Riadok 1:
[https://techfun.sk/produkt/pcf8574-expander-i2c-zbernice/ PCF8574 expander I2C zbernice] - napíšte rutiny na zápis a prečítanie jednotlivých bitov obvodu. Predvedenie si vymyslite, napr. pripojte na výstupy 8 LED diód a vytvorte nejakú jednoduchú animáciu.
Záverečný projekt predmetu MIPS / LS2025 - '''Kamil Hanišák'''
 
 
Záverečný projekt predmetu MIPS / LS2023 - '''Meno Priezvisko'''




== Zadanie ==
== Zadanie ==


Sem príde text zadania, ak bolo len voľne formulované, rozpíšte ho podrobnejšie
Cieľom zadania bolo vytvoriť jednoduchý mikroprocesorový obvod, ktorý umožňuje ovládať viacero LED diód pomocou i2c expanzného obvodu PCF8574, a naprogramovať jednoduchú svetelnú animáciu.


[[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]
[[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]
Riadok 13: Riadok 10:
'''Literatúra:'''  
'''Literatúra:'''  
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]
* [http://www.humanbenchmark.com/tests/reactiontime/index.php Vyskúšajte si zmerať reakciu on-line]
* [https://www.ti.com/lit/ds/symlink/pcf8574.pdf Dokumentácia ku Zbernici i2c: PCF8574]




Riadok 20: Riadok 17:
== Analýza  a opis riešenia ==
== Analýza  a opis riešenia ==


Opíšte sem čo a ako ste spravili, ak treba, doplňte obrázkami...
Na riešenie zadania sme použili zbernicu i2c PCF8574, ktorá nám umožnila ovládať viacero LED diód pomocou len dvoch vodičov – SDA a SCL. Tento čip komunikuje po i2c zbernici s mikrokontrolérom Arduino Acrob s ATmega328P, pričom každý jej výstupný pin možno samostatne nastavovať na logickú 0 alebo 1.
'''Použité komponenty:'''
* PCF8574P – i2c expander s 8 výstupmi
* 4x LED dióda
* 4x rezistor 220 Ω – ochranné rezistory pred LED diódami
* 2x rezistor 4.7 kΩ – pull-up rezistory na i2c vodiče (SDA a SCL)
* Prepojovacie vodiče a nepájivé pole (breadboard)
 
[[Súbor:KonfiguraciaPinov.jpeg|250px|thumb|center|Konfigurácia pinov PCF8574P.]]
 
Naše konkrétne pripojenie pinov čipu PCF8574 k Arduinu a LED diódam:


[[Súbor:ledRGB.jpg|400px|thumb|center|RGB LED.]]
{| class="wikitable"
! Pin PCF8574 !! Pripojenie
|-
| A0 || Adresovací pin – pripojený na GND
|-
| A1 || Adresovací pin – pripojený na GND
|-
| A2 || Adresovací pin – pripojený na GND
|-
| P0 || Výstup pre LED 1
|-
| P1 || Výstup pre LED 2
|-
| P2 || Výstup pre LED 3
|-
| P3 || Výstup pre LED 4
|-
| VSS || GND
|-
| P4–P7 || Nepoužité
|-
| INT || Nepripojené (nepoužili sme prerušenie)
|-
| SCL (pin 14) || Pripojené na Arduino A5 + pull-up rezistor na VCC
|-
| SDA (pin 15) || Pripojené na Arduino A4 + pull-up rezistor na VCC
|-
| VDD || Napájanie +5V
|}


Nezabudnite doplniť schému zapojenia!


[[Súbor:schd.png|400px|thumb|center|Schéma zapojenia LCD displeja.]]
 
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.
 
[[Súbor:Pcf8574.jpeg|400px|thumb|center|Schéma zapojenia.]]




=== Algoritmus a program ===
=== Algoritmus a program ===


Algoritmus programu je....
Základom programu je cyklické zapínanie a vypínanie jednotlivých výstupov čipu PCF8574 tak, aby vytvorili jednoduchú svetelnú animáciu – postupné rozsvietenie, zhasínanie, bežiace svetlo a spoločné blikanie.
Pri písaní kódu sme využili knižnice i2cmaster.h a i2cmaster.c z cvičení
 




<tabs>
<tabs>
<tab name="AVR C-code"><source lang="c++" style="background: LightYellow;">
<tab name="AVR C-code"><syntaxhighlight  lang="c++" style="background: LightYellow;">
#include <avr/io.h>
#include <avr/io.h>


Riadok 50: Riadok 89:
}
}


</source></tab>
</syntaxhighlight ></tab>
<tab name="filename.h"><source lang="c++" style="background: LightYellow;">
<tab name="filename.h"><syntaxhighlight  lang="c++" style="background: LightYellow;">
#include <avr/io.h>
#include <avr/io.h>


Riadok 57: Riadok 96:


unsigned int adc_read(char a_pin);
unsigned int adc_read(char a_pin);
</source></tab>
</syntaxhighlight ></tab>
</tabs>
</tabs>


Riadok 63: Riadok 102:


Zdrojový kód: [[Médiá:projektMenoPriezvisko.zip|zdrojaky.zip]]
Zdrojový kód: [[Médiá:projektMenoPriezvisko.zip|zdrojaky.zip]]


=== Overenie ===
=== 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.  
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 záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.  
Na konci uvádzame fotku hotového zariadenia.  


[[Súbor:fotka.jpg|400px|thumb|center|Aplikácia.]]
[[Súbor:GeminiAI-image1.jpg|400px|thumb|center|Aplikácia.]]


'''Video:'''
'''Video:'''
<center><youtube>_l02MBu41n0</youtube></center>
<center><youtube>D0UnqGm_miA</youtube></center>
 
 
 


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


[[Category:AVR]] [[Category:MIPS]]
[[Category:AVR]] [[Category:MIPS]]

Aktuálna revízia z 18:29, 16. máj 2025

Záverečný projekt predmetu MIPS / LS2025 - Kamil Hanišák


Zadanie

Cieľom zadania bolo vytvoriť jednoduchý mikroprocesorový obvod, ktorý umožňuje ovládať viacero LED diód pomocou i2c expanzného obvodu PCF8574, a naprogramovať jednoduchú svetelnú animáciu.

Vývojová doska ACROB.

Literatúra:


Analýza a opis riešenia

Na riešenie zadania sme použili zbernicu i2c PCF8574, ktorá nám umožnila ovládať viacero LED diód pomocou len dvoch vodičov – SDA a SCL. Tento čip komunikuje po i2c zbernici s mikrokontrolérom Arduino Acrob s ATmega328P, pričom každý jej výstupný pin možno samostatne nastavovať na logickú 0 alebo 1. Použité komponenty:

  • PCF8574P – i2c expander s 8 výstupmi
  • 4x LED dióda
  • 4x rezistor 220 Ω – ochranné rezistory pred LED diódami
  • 2x rezistor 4.7 kΩ – pull-up rezistory na i2c vodiče (SDA a SCL)
  • Prepojovacie vodiče a nepájivé pole (breadboard)
Konfigurácia pinov PCF8574P.

Naše konkrétne pripojenie pinov čipu PCF8574 k Arduinu a LED diódam:

Pin PCF8574 Pripojenie
A0 Adresovací pin – pripojený na GND
A1 Adresovací pin – pripojený na GND
A2 Adresovací pin – pripojený na GND
P0 Výstup pre LED 1
P1 Výstup pre LED 2
P2 Výstup pre LED 3
P3 Výstup pre LED 4
VSS GND
P4–P7 Nepoužité
INT Nepripojené (nepoužili sme prerušenie)
SCL (pin 14) Pripojené na Arduino A5 + pull-up rezistor na VCC
SDA (pin 15) Pripojené na Arduino A4 + pull-up rezistor na VCC
VDD Napájanie +5V


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.

Schéma zapojenia.


Algoritmus a program

Základom programu je cyklické zapínanie a vypínanie jednotlivých výstupov čipu PCF8574 tak, aby vytvorili jednoduchú svetelnú animáciu – postupné rozsvietenie, zhasínanie, bežiace svetlo a spoločné blikanie. Pri písaní kódu sme využili knižnice i2cmaster.h a i2cmaster.c z cvičení


#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.

Aplikácia.

Video:



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