Lisolo 17/31: Ndenge ya kokanga kozelisa na Arduino mpe Résistance ya Kobongisa na Pole LDR | Robojax
Na boyéli oyo, tokotalela makanisi mibale ya motuya ya Arduino: interruptions mpe ba résistances oyo etalelaka pole (LDR). Okoyekola ndenge ya kosukisa ba délais na kati ya code na yo mpo ete Arduino na yo eyanola mbala moko na bobengi ya bouton, mpe na nsima tokosala circuit oyo etalelaka pole mpo ete na butu efungola buzzer to mwinda automatiquement. Projet oyo ezali malamu mpo na moto nyonso oyo alingi koleka na ndámbo ya ba sketches ya blinking LED mpe kobanda kosala ba projets ya automatisation oyo eyanolaka na bopɛngoli ya mokili. Okoki kosalela mayele oyo mpo na kosala mwinda ya butu ya mayele mpo na ndako na yo, alarme ya sécurité oyo elobaka ntango porte efungwami, mwinda ya jardin oyo etambolaka na soleil oyo epelaka na pokwa, to rideau oyo efungwamaka automatiquement ntango moi ekweyi. Lesson oyo ezwami na SunFounder 3-in-1 Arduino kit, kasi makanisi yango esalelamaka na carte Arduino nyonso ya standard.

Matériel & Ba Composants
Mpo na kolanda projet oyo, okolinga ba composants oyo. Arduino Uno to Nano ya standard ezali malamu mpo na kosala yango.
- Arduino Uno to Nano
- Résistance oyo etalelaka pole (LDR), lokola Kweeds KM601
- Résistance ya 10k Ohm
- Bouton poussoir
- Buzzer
- Breadboard mpe ba fils ya jumper
Kokanga mayele na ba Interruptions ya Arduino
Na sketch ya Arduino ya mbala na mbala, fonction loop() etambolaka na libela, esalaka misala moko na moko. Ntango okosalela delay(), Arduino akosukisa kosala eloko mosusu na tango wana. Yango ezali problème soki okolinga koyanola na likambo ya motuya, lokola kobengama ya bouton, ntango mosala mosusu ezali kosalema. Na ndakisa, soki ozali na délai ya seconde moko mpo na kopelisa LED, kobengama ya bouton ekoki kozanga koyanola kino seconde moko, oyo emonanaka ete ezali te na bopɛngoli (na vidéo na 08:13).
Ba interruptions ya Arduino basengolaka problème oyo. Interruption ezali caractéristique ya matériel oyo epesaka pin moko nzela ya "kosukisa" programme principal, kosukisa makambo oyo ezali kosalema, mpe kosala fonction spéciale oyo babengi Interrupt Service Routine (ISR). Yango epesaka Arduino na yo nzela ya koyanola na ba événements ya motuya mbala moko, ata soki makambo mosusu ezali kosalema. Ezali na tina koyeba ete ba pins nyonso te esalelaka interruptions. Na Arduino Uno mpe Nano, kaka ba pins 2 mpe 3 ekoki kosalelama mpo na yango (na vidéo na 02:37). Ba cartes mosusu lokola Mega ezali na ba options mingi, kasi mpo na projet oyo, tokosala na pin 2.
Ba interruptions ekoki kotrigger na ba changements ya état ndenge na ndenge na pin: LOW, CHANGE, RISING, mpe FALLING. Mode CHANGE etriggeraka interruption ntango nyonso état ya pin ebongwani longwa na HIGH na LOW to longwa na LOW na HIGH, oyo ezali malamu mpo na bouton oyo ebongolaka état.
Guide ya Câblage
Tokosala ba circuits mibale na lesson oyo. Ya liboso emonisi interruptions na bouton mpe buzzer, mpe ya mibale esalelaka LDR mpo na koyeba niveau ya pole. Tokobanda na circuit ya interruption.
Circuit 1: Bouton mpe Buzzer mpo na Démonstration ya Interruption
Circuit oyo ezali pete. Bouton esangani na pin 2, oyo ezali pin ya interruption na biso. Résistance ya 10k Ohm ya pull-down ekomisaka ete pin etanga LOW ntango bouton epresami te, mpe HIGH ntango epresami. Buzzer esangani na pin 8.
Mpo na démonstration ya interruption, sangisa ba composants boye:
- Bouton poussoir: Sangisa lokolo moko na 5V mpe lokolo mosusu na pin digitale 2. Sangisa résistance ya 10k Ohm longwa na pin 2 na GND.
- Buzzer: Sangisa fil négatif na GND mpe fil positif na pin digitale 8.
Circuit 2: LDR mpe Buzzer mpo na Koyeba Pole
Mpo na circuit ya LDR, tosalelaka configuration ya voltage divider. Résistance ya LDR ebongwaka na pole, oyo ebongolaka voltage na pin analogique. Ntango ezali molili, LDR ezali na résistance ya likolo (pene na 10k Ohms), mpe ntango ezali pole, résistance ekweyaka mingi (na vidéo na 16:25). Bongwana ya résistance oyo nde tometelaka.
Voltage divider ezali nécessaire mpo ete Arduino ekoki kotanga kaka voltage, te résistance. Na kotia LDR na série na résistance fixe ya 10k Ohm, voltage na esika oyo ezali entre bango mibale ebongwaka na ndenge ya résistance ya LDR. Voltage oyo nde etangamaka na analog-to-digital converter (ADC) ya Arduino.
Mpo na démonstration ya LDR, sangisa ba composants boye:
- LDR: Sangisa lokolo moko na 5V mpe lokolo mosusu na pin analogique A0.
- Résistance ya 10k Ohm: Sangisa longwa na lokolo ya LDR oyo ekende na A0 kino na GND. Yango esalaka voltage divider.
- Buzzer: Sangisa fil négatif na GND mpe fil positif na pin digitale 8.
Likambo ya koyeba: Ba assignations ya pins ezali na kati ya code mpe ekoki kobongwana mpo na kosalela na yo.
Explication ya Code
Tokotalela ba parties ya code oyo esengeli kobongwana na moto oyo azali kosalela yango, oyo etalelaka ndenge projet etambolaka. Programme mobimba ezali ya kokitisama na nse ya article.
Code esalemi mpo na kobongwana na pete. Na likolo ya sketch, okomona ba variables ya ntina oyo okoki kobongola.
const byte buzzerPin = 8;
const byte interruptPin = 2;
volatile byte state = LOW;
int count=0;
Awa, buzzerPin ezali na pin 8, epai okokɔtisa buzzer. interruptPin ezali na pin 2, oyo ezali pin oyo ekoyoka libaku ya bouton. state ezali variable ya volatile oyo ezali na état ya buzzer (HIGH to LOW). Ezali na volatile mpo ete ebongwisami na kati ya interrupt service routine (ISR), mpe moto oyo akoloba ete Arduino atángaka ntango nyonso valeur ya sika. count ezali compteur ya pete oyo ekokitisaka na boucle principal mpo na kolakisa ete boucle ezali kaka kotambola ntango interrupt ezali actif.
Na fonction setup(), pin ya buzzer ezali défini lokola OUTPUT, mpe pin ya interrupt ezali défini lokola INPUT. Ligne ya ntina ezali attachInterrupt(), epai okobongisa interrupt. Fonction oyo elobaka na Arduino nini pin akotala, nini fonction akobenga ntango interrupt esalemaka, mpe nini condition oyo ekotrigger.
attachInterrupt(digitalPinToInterrupt(interruptPin), noisy, CHANGE);
Ligne oyo ekangisaka interrupt na pin oyo epesamaki. Fonction digitalPinToInterrupt() ebongolaka numéro ya pin na numéro ya interrupt oyo esengeli. noisy ezali kombo ya fonction oyo ekobengama ntango interrupt etrigger. Na suka, CHANGE ezali mode, oyo etrigger interrupt na mbongwana nyonso ya état ya pin. Okoki kobongola yango na RISING, FALLING, to LOW kolanda na bamposa na yo.
Fonction noisy() ezali ISR. Ezali fonction ya toggle ya pete oyo ebongolaka état ya buzzer. Ntango bouton epresaka, interrupt etrigger fonction oyo, oyo ebongolaka variable state mpe ekomaka yango na pin ya buzzer. Oyo epesaka yo nzela ya kofungola mpe kokanga buzzer na mbangu na mbangu ntango nyonso opressi bouton, ata soki boucle principal ezali na mosala ya kotanga mpe kozelisa.
Mpo na kobongola comportement ya projet mpo na kofungola buzzer na butu esika na moyi, okobongola logique na boucle principal, okobalola commandes digitalWrite() mpo na états HIGH mpe LOW.
Projet ya Sika & Démonstration
Na démonstration, okomona ba expériences mibale ya ntina. Liboso, circuit ya interrupt elakisamaki ezali kotambola sans code ya interrupt, epai delay na boucle ekomisaka réponse ya bouton malembe. Oyo elakisaka problème oyo interrupts esengeli kosilisa.
Bongo, na code ya interrupt oyo ekomami, moniteur série elakisaka compteur oyo ekokisaka na seconde nyonso. Ntango bouton epresami, buzzer efungolamaka to ekangamaka mbala moko, ata soki delay ezali na boucle principal. Oyo epesaka preuve ete interrupt esalaka mosala na yango mbala moko, na kolongwa na boucle (na vidéo na 14:07).
Mpo na partie ya LDR, moniteur série ekomaka valeur analogique ya brut. Okomona ete valeur ezali likolo (pene na 960) na pole ya makasi mpe ekitisaka mingi (na pene na 400 to na se) ntango capteur ezipami. Oyo elakisaka ndenge résistance ya LDR ebongwanaka na intensité ya pole. Code yango esalelaka valeur seuil mpo na koyeba soki ezali "moyi" to "butu" mpe ekolakisa buzzer na ndenge oyo. Na kozipa capteur mpo na kosala lokola butu, okoki kotrigger buzzer, mpe na kopesa pole, okoki kokanga yango.
Baparties
- [00:00] Introduction na Arduino Interrupts mpe LDR
- [01:43] Problème ya Delays na Code ya Arduino
- [03:37] Kososola Interrupt Pins mpe Modes
- [04:20] Kokangisa Circuit ya Bouton mpe Buzzer
- [06:22] Explication ya Code mpo na Démo ya Delay
- [07:48] Démonstration ya Problème ya Delay
- [09:26] Kosala mpe Kokoma Interrupt
- [11:50] Ndenge Fonction ya Interrupt Esalaka
- [14:26] Introduction na Résistances ya Pole (LDR)
- [15:44] Komeka Résistance ya LDR na Multimètre
- [17:22] Kokangisa Circuit ya LDR mpe Buzzer
- [19:55] Code mpo na Kotanga Valeurs ya LDR
- [20:49] Démonstration ya Mbongwana ya Valeur ya LDR
- [22:08] Kobongisa Seuils ya Moyi mpe Butu
- [23:40] Code mpo na Kokamba Buzzer na LDR
- [25:21] Démonstration ya Pole ya Butu ya Automatique
/*
Lesson 20/31: interrupt a delay in Arduino and Light Dependent Resistor LDR
Get this code and watch video Download and resource page https://robojax.com/RJT600
YouTube video https://www.youtube.com/watch?v=N_L11m1v_yk
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
const byte buzzerPin = 8;
const byte interruptPin = 2;
volatile byte state = LOW;
int count=0;
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(interruptPin, INPUT);
attachInterrupt(digitalPinToInterrupt(interruptPin), noisy, CHANGE);
Serial.begin(9600);
digitalWrite(buzzerPin, state);
}
void loop() {
count++;
Serial.println(count);
delay(1000);
}
void noisy() {
state = !state;
digitalWrite(buzzerPin, state);
}
Common Course Links
Common Course Files
Nko o na nki.
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Mokili na bisika
-
DokumentasiDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
L'extérieurPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Fichiers📁
Maktabat ya Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB