Lis 14/31-5: Ndakisa ya Arduino map() ndakisa 2
Lithu eye ya koloba ndenge ya kosalela map() ya Arduino mpo na kokamba bongengi ya LED na kati ya mokapo ya % (0–100%) na esika ya 0–255 oyo analogWrite()() esengaka. Yango ezali tekiniki ya libula oyo ekokitisa kosala code na yo mpe ekosalisa yo kososola yango malamu, mpo okoki kokanisa na mokapo ya % na esika ya ba valeurs ya byte.
Likoki oyo ezali na tina mpo na projet nyonso oyo esengaka yo kobongola ba lectures ya senseur to ba signaux ya contrôle. Na ndakisa, okoki kosalela yango mpo na:
- Kokamba bongengi ya LED to vitesse ya moteur na ndenge ya lecture ya potentiomètre.
- Kobongola résultat ya senseur ya température (ndakisa, 0–1023) na degré Celsius to Fahrenheit.
- Kobongola entrée analogique ya joystick mpo na kokamba position ya servo moteur.
- Kosala interface ya utilisateur oyo mokapo ya % esalelami mpo na kokitisa niveau ya puissance ya appareil.
Na suka ya lesson oyo, okokoka kokoma code ya peto, oyo ekoki kobongisama malamu mpe oyo ezali pete mpo na kotanga mpe kobongola.
Matériel/Composants
Projet oyo esalelaka ba composants mingi te, yango wana ezali malamu mpo na ba débutants. Okosengela:
- Arduino board (ndakisa, Uno).
- LED moko.
- Résistance ya 220 ohms.
- Ba fils ya jumper.
- Breadboard (oyo ezali na tina te kasi ezali malamu).
Guide ya câblage
Câblage ya projet oyo ezali pete mingi, ndenge emonisami na vidéo (na vidéo na 20:47). LED esangisami na pin 3 ya Arduino na nzela ya résistance ya 220 ohms oyo ekokitisa courant.
Kokangisa anode (longue jambe) ya LED na pin 3 na nzela ya résistance. Kokangisa cathode (court jambe) ya LED na pin ya terre (GND) na Arduino.
Explication ya Code
Ndakisa oyo elobelaka fonction oyo utilisateur akoma moko oyo ekokitisa kokamba bongengi ya LED. Code esalemi na fonction personnalisée oyo babengi pwmValue(), oyo ezali ntina ya kosala code ezala compréhensible.
Tókabola ba parties ya code oyo ekoki kobongisama:
int LEDpin = 3; //defini pin mpo na LED
Ligne oyo efinir pin ya Arduino oyo LED esangisami na yango. Okoki kobongola numéro 3 na pin mosusu oyo ekoki na PWM na Arduino board na yo.
Ntina ya projet ezali fonction personnalisée pwmValue(). Fonction oyo endimaka mokapo ya % lokola entrée na yango mpe ekobongola yango na intervalle 0–255 oyo analogWrite() esalelaka. Ezali awa oyo fonction map() esalaka magie na yango.
int pwmValue(int percent)
{
if(percent >=0 && percent <=100)
{
return map(percent, 0,100, 0,255);
}else
{
return 0;
}
}
Mpo na kosalela fonction oyo, osengeli kaka kobenga yango na mokapo ya bongengi oyo olingi. Fonction ekopesa valeur ya malamu mpo na analogWrite(). Na ndakisa, pwmValue(60) ekopesa 153, oyo ekokani na 60% ya 255. Fonction ezali mpe na contrôle ya sécurité mpo na komeka soki mokapo ya entrée ezali entre 0 na 100, mpe ekopesa 0 soki ezali na libanda ya intervalle oyo.
Na fonction setup(), okoki komona ndenge oyo esalelami:
int b=5;//60% bongengi
Serial.println( pwmValue(b) );//komisa yango na moniteur série
analogWrite(LEDpin, pwmValue(b));// pelisa LED na bongengi ya 60%
Awa, variable b esili kokitisama na mokapo ya bongengi oyo olingi. Fonction pwmValue(b) esalelami mpo na komisa valeur oyo ebongolami na moniteur série mpe mpo na kokitisa bongengi ya LED. Mpo na kobongola bongengi ya LED, osengeli kaka kobongola valeur ya b. Fonction map() esalaka ba calcul nyonso oyo esengeli mpo na yo.
Projet/Démonstration ya bomoi
Na vidéo, présentateur amonisaka projet na kobongola valeur ya variable b mpe na kotombola code na Arduino. Tango b esili kokitisama na 60, code ekobongola yango na 153 mpe LED ekopelaka na bongengi ya 60%. Kobongola b na 90 ekobongola na 229, mpe yango ekosalaka LED ezala kongenga mingi. Kokitisa yango na 100 ekobongola na 255, oyo ezali bongengi ya maximum. Démonstration emonisaka polele ndenge fonction map() esalelaka yo mpo na kokamba LED na mokapo ya % oyo ezali compréhensible, ntango moniteur série endimaka valeur ya 0–255 oyo etindami na pin (na vidéo na 21:29).
Ba projets oyo ekokani na vidéo oyo
- Lesson 14/31-1: Arduino Millis (no delay) mpe ba fonctions map | SunFounder Robojax
- Lesson 14/31-2: Arduino coding millis() ndakisa 2 na événement
- Lesson 14/31-3: Arduino coding millis() ndakisa 3 na bouton poussoir
- Lesson 14/31-4: Arduino coding map() ndakisa 1
Ba chapitres
- [00:00] Introduction na ba fonctions Millis mpe map
- [01:19] Nini Millis mpe mpo na nini kosalela yango
- [05:46] Kosalela Millis na événement mpo na kosala action
- [08:35] Millis ndakisa 2 na bouton poussoir
- [12:14] Millis ndakisa 3 mpo na kotala soki bouton epesami mbala mibale
- [17:20] Introduction na fonction map()
- [19:47] Ndakisa ya code mpo na kobongola mokapo na bongengi ya LED
- [20:47] Démonstration ya bomoi ya fonction map()
- [22:41] Kosala fonction personnalisée mpo na kokamba mapping
/*
Lesson 14/31-5: Arduino coding map( ) example-2
Get this code and watch video Download and resource page https://robojax.com/RJT597
YouTube video https://www.youtube.com/watch?v=lqgzQohNiIM
* 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/>.
*/
int LEDpin = 3; //defind pin for LED
void setup() {
Serial.begin(9600);//initialzie serial monitor with 9600 baud
pinMode(LEDpin, OUTPUT);//set pin as output
int b=5;//60% brightness
Serial.println( pwmValue(b) );//print it on serial monitor
analogWrite(LEDpin, pwmValue(b));// turn the LED on with 60% brightness
}
void loop() {
}
/*
* pwmValue(int percent)
* @param precent is value between 0 to 100
* @return it returns the mapped value from 0 to 255
* written by Ahmad Shamshiri on Dec 9, 2022
*
*/
int pwmValue(int percent)
{
if(percent >=0 && percent <=100)
{
return map(percent, 0,100, 0,255);
}else
{
return 0;
}
} //pwmValue end
Nko o na nki.
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
-
Autre
Mokili na bisika
-
L'extérieurPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Fichiers📁
Manuel de l'utilisateur
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB