Operácie

Zbernica i2c: PCF8574: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Vytvorená stránka „[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. Predved…“
 
StudentMIPS (diskusia | príspevky)
Bez shrnutí editace
 
(13 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'''
 
 
== 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.
 
[[Obrázok:ard.jpg|400px|thumb|center|Vývojová doska ACROB.]]
 
'''Literatúra:'''
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob_technical_description Dokumentácia k doske Acrob]
* [https://www.ti.com/lit/ds/symlink/pcf8574.pdf Dokumentácia ku Zbernici i2c: PCF8574]
 
 
__TOC__
 
== 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)
 
[[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:
 
{| 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! 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 ===
 
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>
<tab name="AVR C-code"><syntaxhighlight  lang="c++" style="background: LightYellow;">
#include <avr/io.h>
 
int main(void)
{
  unsigned int measuredValue;
 
  while (1)
  {
    /*  relax  */ 
  }
 
  return(0);
}
 
</syntaxhighlight ></tab>
<tab name="filename.h"><syntaxhighlight  lang="c++" style="background: LightYellow;">
#include <avr/io.h>
 
void adc_init(void);                                  // A/D converter initialization
 
unsigned int adc_read(char a_pin);
</syntaxhighlight ></tab>
</tabs>
 
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: [[Médiá:projektMenoPriezvisko.zip|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.
 
[[Súbor:GeminiAI-image1.jpg|400px|thumb|center|Aplikácia.]]
 
'''Video:'''
<center><youtube>D0UnqGm_miA</youtube></center>
 
 
 
 
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.
 
[[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.