Luka Code

Lis 22/31: Kosalela ya Eza ya Sɛti Sɛgɛmɛ́ ya Sɛti Sɛgɛmɛ́ na Arduino mpé Dɛ́si ya Elektroniki | SunFounder Robojax

Lis 22/31: Kosalela ya Eza ya Sɛti Sɛgɛmɛ́ ya Sɛti Sɛgɛmɛ́ na Arduino mpé Dɛ́si ya Elektroniki | SunFounder Robojax

Na boyéksi oyo, tokompwa ndenge ya kokamba display ya ba segments sambo na Arduino. Na esika ya kosalela ba pin ebele koleka zomi na mibale mpo na kopelisa segment moko na moko, tosalelaka mayele moko ya kitoko: shift register. Chip oyo moke mpe ya motuya moke esalisi biso tokamba ba segments nyonso sambo (longola mokuse ya desimali) na nzela ya ba nsinga misato kaka longwa na Arduino. Oyo ezali tekiniki ya libula na makambo ya elektrisite oyo epesaka yo nzela ya kobakisa motango ya ba sorties oyo ezali na microcontroller na yo, mpo na kosala ba projets ebele koleka na ntango moko na kotika te kosala upgrade ya carte na yo.

kobongisa na breadboard longwa na vidéo

Na esika ya counter ya liboso, tokosala désé ya elektroniki. Projet oyo esalaka ete toyeba malamu mingi ndenge ya kokamba display, mpe lisusu epesaka biso nzela ya kosalela bouton mpo na bato kokota mpe makanisi ya interrupts, mpo na kosala appareil oyo eyanolaka mpe esalaka na bato. Guide oyo euti na lesson ya Robojax Arduino Course, oyo esalelaka kit ya SunFounder 3-in-1 Arduino.

Tala awa ba idées mosusu ya misala oyo okoki kosala na boyebi oyo:

  • Kosala tableau ya ba points mpo na ba jeux lokola tennis ya mesa to basket.
  • Kosala chronomètre ya numérique mpo na ba jeux ya table to countdown ya cuisine.
  • Kosala générateur ya ba nombres ya hasard mpo na ba jeux to mpo na kosala ba décisions.
  • Kosala thermomètre ya numérique ya liboso na kobakisa capteur ya température.

Matériel mpe ba Composants

Liboso ya kobanda, tólinga ba composants oyo esengeli. Motuya ya projet oyo ezali shift register 74HC595, oyo ezali nkisi mpo na kokitisa motango ya ba pin oyo esengeli. Na esika ya kokangisa segment moko na moko ya sambo na Arduino, tokangisaka yango na shift register. Na sima Arduino etindaka ba données ya chiffre na nzela ya série (bit moko na mokolo) na chip, oyo na sima ebimisaka modèle ya sembo mpo na kopelisa ba segments.

  • Arduino Uno (to carte oyo ekokani na yango)
  • Display ya ba segments sambo (modèle 5161AS, cathode commune)
  • Shift register IC 74HC595
  • Bouton poussoir
  • Ba résistances (220Ω - 330Ω)
  • Ba fils de connexion
  • Breadboard

Display 5161AS ezali ya cathode commune. Ntina: ba cathodes nyonso (ba côtés négatifs) ya ba LED ya intérieur basangani na pin moko ya terre commune. Mpo na kopelisa segment, esengeli kopesa tension positive na pin ya anode na yango. 74HC595 ezali lokola pont, ezwaka ba données ya série longwa na Arduino mpe ebimisaka ba signaux parallèles oyo esengeli mpo na kokamba ba anodes oyo.

Guide ya Kobongisa ba Fils

circuit_6.5_segment_schematic
segment_wiring_sundounder_3-in-1-kit

Kobongisa ba fils ya shift register mpe display ekoki komonana mpasi, kasi kolanda diagram mokemoke ezali mpenza ntina. Vidéo (na 04:48) epesaka mateya ya malamu mpo na processus oyo. Chip 74HC595 ezali na entaille na moko ya ba extrémités na yango mpo na koyeba pin 1. Ba pin bazali na ba numéros na direction contraire ya montre longwa na entaille (1-8 na côté moko, 9-16 na côté mosusu).

Tala awa résumé ya kobongisa ba fils longwa na vidéo:

  • Énergie mpe Terre: Kanga pin 8 mpe pin 13 ya 74HC595 na rail ya terre. Kanga pin 10 mpe pin 16 na rail ya 5V.
  • Ba lignes ya données: Kanga ba pins ya numérique ya Arduino na ba pins ya données ya shift register: Pin 12 (STcp) na pin 12 ya chip, Pin 8 (SHcp) na pin 11 ya chip, mpe Pin 11 (DS) na pin 14 ya chip.
  • Display na Shift Register: Oyo ezali partie ya mpasi koleka. Vidéo (na 07:18) elobeli mokemoke ba connexions nyonso. Na ndakisa, segment 'a' na display ekangami na pin 6 ya chip, segment 'b' na pin 5, mpe bongo na bongo. Ba pins ya cathode commune ya display bakangami na terre na nzela ya résistance.

Mpo na guide ya komona mpe ya sikisiki, tálá diagram ya officiel ya kobongisa ba fils:

Ba connexions ya ba pins ezali mpenza ntina, mpe ezali pete mpo na kosala libunga. Zwa ntango na yo mpe tálá mbala mibale fil moko na moko na diagram. Vidéo ezali ressource ya malamu mpo na kolanda yango.

Désé

Explication ya Code

Ba codes mibale epesami na lesson oyo. Ya liboso ezali counter ya pete, mpe ya mibale etongami likolo na yango mpo na kosala désé ya elektroniki. Bango nyonso mibale bazali na logique ya libula mpo na kokamba display.

Tala code ya counter ya liboso:

const int STcp = 12;//Pin connected to ST_CP of 74HC595
const int SHcp = 8;//Pin connected to SH_CP of 74HC595 
const int DS = 11; //Pin connected to DS of 74HC595 

int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

Na likolo ya code, okoki kobongisa ba pins misato oyo ekangami na shift register. STcp, SHcp, mpe DS bazali na ba pins ya Arduino 12, 8, mpe 11. datArray[] ezali partie ya ntina mingi. Ezali tableau ya référence oyo ezali na ba valeurs hexadécimales mpo na ba chiffres 0 kino 9. Valeur moko na moko ezali modèle ya ba segments oyo esengeli kopelisa mpo na chiffre yango.

Fonction loop() ezali ko tambwisa compteur. Ezali kosalela boucle for mpo na kotanga longwa na 0 tee na 9. Na kati ya boucle, code ezali kotinda ba données ya numéro ya sika na registre ya décalage. delay(1000) na suka ezali ko définir vitesse ya compteur na millisecondes. Bongola motuya oyo na 100 mpo na kotanga mbala mbala, to 500 mpo na kotanga malembe.

Code ya dés électronique ezali komemela élément ya sika: entrée ya moto na bouton. Ba changements ya configuration ya liboso ezali:

const int buttonPin = 2;
//...
pinMode(buttonPin, INPUT);
attachInterrupt(digitalPinToInterrupt(buttonPin), rollDice, FALLING);

Awa, buttonPin ezali défini na pin digitale 2. Pin oyo ezali spéciale mpo ete ekoki kosalelama lokola interrupt. Interrupt ekesenisi Arduino kosala likambo oyo ezali kosalema mbala moko ntango bouton epresé, mpo na réponse ya mbangu mpe ya semba. Mode FALLING ezali ko déclencher interrupt ntango bouton epresé (signal ekende longwa na HIGH tee na LOW).

Fonction rollDice ezali kobengama na interrupt. Ezali ko changer variable state kati na 0 mpe 1. Ntango state ezali 0, dés ezali "ko rolling," mpe boucle principale loop() ekotalisa ba numéro na ndenge ya aléatoire. Ntango bouton epresé lisusu, state ekokoma 1, mpe ekosukisa boucle mpe ekotalisa résultat ya suka. Fonction showNumber() ezali lokola logique ya compteur, kasi ezali kozwa numéro lokola argument mpo na kotálisa.

Projet ya Bomoi mpe Démonstration

Ntango code ekoté na Arduino, compteur ekobanda kotambola, ezali kotálisa ba numéro longwa na 0 tee na 9 na délai ya seconde moko (na vidéo na 15:04). Vidéo ezali kolakisa kobongola délai mpo na kosala ete compteur etambola mbangu mingi.

Démonstration ya dés électronique (na vidéo na 20:15) ezali kolakisa bouton na mosala. Ntango opresé yango mbala moko, affichage ekobanda kotambola na ba numéro na lombangu. Opresé yango lisusu mpo na kosukisa kotambola yango, mpe ekotikala na numéro ya aléatoire kati na 1 mpe 6, lokola dés ya solo.

Ba Chapitres

  • [00:00] Introduction na Projet ya Affichage ya Ba Segments Sambo
  • [01:25] Kososola Affichage ya Ba Segments Sambo
  • [03:51] Datasheet mpe Spécifications ya Affichage 5161AS
  • [04:48] Kokanga Affichage mpe Registre ya Décalage
  • [12:24] Code Arduino mpo na Compteur 0-9
  • [15:04] Démonstration ya Compteur mpe Kobongola Vitesse
  • [16:27] Kotonga Projet ya Dés Électronique
  • [20:15] Démonstration ya Dés Électronique mpe Debouncing

Images

Wiring on breadboard from video
Wiring on breadboard from video
Circuit 6.5 segment schematic
Circuit 6.5 segment schematic
Dice
Dice
Segment wiring for Sunfounder 3-in-1 kit
Segment wiring for Sunfounder 3-in-1 kit
Segments of segment display
Segments of segment display
Seven segment pins - common cathode
Seven segment pins - common cathode
Seven segment pins - DP decimal pin
Seven segment pins - DP decimal pin
Seven segment pins - common cathode
Seven segment pins - common cathode
902-Lesson 23/31: Arduino code Using Seven Segment Display
Langue: C++
/*
Lesson 23/31: Using Seven Segment Display 
Get this code and watch video Download and resource page https://robojax.com/RJT605
YouTube video https://www.youtube.com/watch?v=3qoGAYh0lbc

*/
const int STcp = 12;//Pin connected to ST_CP of 74HC595
const int SHcp = 8;//Pin connected to SH_CP of 74HC595 
const int DS = 11; //Pin connected to DS of 74HC595 

int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void setup ()
{
  //set pins to output
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}
void loop()
{
  for(int num = 0; num <10; num++)
  {
    digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
    delay(1000);
  }
}
903-Lesson 23/31: Electronic dice
Langue: C++
/*
Lesson 23/31: Electronic Dice
Get this code and watch video Download and resource page https://robojax.com/RJT605
YouTube video https://www.youtube.com/watch?v=3qoGAYh0lbc

*/
const int STcp = 12;//Pin connected to ST_CP of 74HC595
const int SHcp = 8;//Pin connected to SH_CP of 74HC595
const int DS = 11; //Pin connected to DS of 74HC595
const int buttonPin = 2;
int datArray[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,  0x6f};
int number = 0;
int state = 0;

void setup ()
{
  //set pins to output
  pinMode(STcp, OUTPUT);
  pinMode(SHcp, OUTPUT);
  pinMode(DS, OUTPUT);
  pinMode(buttonPin, INPUT);

  attachInterrupt(digitalPinToInterrupt(buttonPin), rollDice, FALLING);
}

void loop()
{
  if (state == 0) {
    showNumber((int)random(1, 7));
    delay(50);
  }
}

void showNumber(int num) {
  digitalWrite(STcp, LOW); //ground ST_CP and hold low for as long as you are transmitting
  shiftOut(DS, SHcp, MSBFIRST, datArray[num]);
  //return the latch pin high to signal chip that it
  //no longer needs to listen for information
  digitalWrite(STcp, HIGH); //pull the ST_CPST_CP to save the data
}


void rollDice() {
  state = !state;
}

Mokili na bisika

Fichiers📁

Maktabat ya Arduino (zip)