Ẹ̀kọ́ 14/31-4: Àpẹẹrẹ map() koodu Arduino 1
Ẹkọ yii jẹ ara ọkan ninu awọn ẹkọ lori siseto Arduino ati pe o dojukọ lilo iṣe ti iṣẹ map(). Ninu ẹkọ yii, iwọ yoo kọ ẹkọ bi o ṣe le yi iye ogorun (0–100) pada si iye PWM (Pulse Width Modulation) (0–255) lati ṣakoso imọlẹ LED kan. Dipo ki o ṣe iṣiro pẹlu ọwọ pe 60% dọgba 153, iṣẹ map() n ṣe iyipada laini fun ọ, ti o jẹ ki koodu rẹ mọ ati rọrun lati loye.
Ilana yii ṣe pataki fun ọpọlọpọ awọn ohun elo gidi-aye nibiti o nilo lati tumọ awọn kika sensori tabi awọn igbewọle olumulo si awọn sakani oriṣiriṣi. Fun apẹẹrẹ, o le lo lati:
- Ṣakoso iyara ti ẹrọ DC kan da lori kika potentiometer.
- Fi iye aisefo sensori iwọn otutu han lori iwọn 0-100%.
- Ya awọn ipoidojuko joystick si awọn igun servo motor.
- Ṣatunṣe imọlẹ LED da lori sensori imọlẹ agbegbe.
- Yi kika analog 0-5V pada si iye oni-nọmba 0-1023 tabi ni idakeji.
Hardware/Awọn ẹya
Lati tẹle pẹlu iṣẹ akanṣe yii, iwọ yoo nilo awọn ẹya wọnyi:
- Bọọdi Arduino (Uno, Nano, ati bẹbẹ lọ)
- LED kan
- Resistor 220-ohm kan
- Awọn okun waya
- Breadboard kan (kii ṣe dandan, ṣugbọn a ṣeduro)
Itọsọna Asopọ
Ninu fidio naa, olukọni ṣe afihan iṣẹ akanṣe naa nipa lilo eto asopọ lati ẹkọ iṣaaju lori didin LED. Circuit naa jẹ taara: sopọ anode (ẹsẹ gigun) ti LED si resistor 220-ohm kan, ki o si sopọ opin miiran ti resistor yẹn si pin oni-nọmba 3 lori Arduino. Sopọ cathode (ẹsẹ kukuru) ti LED taara si pin ilẹ (GND) lori Arduino.
Alaye Koodu
Koodu fun apẹẹrẹ yii jẹ kukuru pupọ, pẹlu ọgbọn pataki ti o wa ninu iṣẹ setup(). Jẹ ki a ya awọn ẹya ti olumulo le ṣatunṣe.
int LEDpin = 3; //defind pin for LED
Laini yii ṣalaye pin Arduino si eyiti LED rẹ ti sopọ. Ninu apẹẹrẹ yii, o ti ṣeto si pin 3, eyiti o jẹ pin ti o lagbara PWM, pataki fun iṣelọpọ analog. O le yi nọmba yii pada ti o ba sopọ LED rẹ si pin PWM miiran.
int b=8;//60% brightness
Eyi ni oniyipada pataki ti iwọ yoo yipada lati ṣe idanwo awọn ipele imọlẹ oriṣiriṣi. O ṣe aṣoju imọlẹ ti o fẹ bi ogorun. Ọrọ asọye ninu koodu naa sọ "60%", ṣugbọn iye naa ti ṣeto si 8 fun awọn idi ifihan ninu fidio naa. O le yi eyi pada si eyikeyi odidi laarin 0 ati 100. Fun apẹẹrẹ, ṣeto b = 60 yoo ṣe aṣoju ipele imọlẹ 60%.
int brightness = map(b, 0, 100, 0,255);
Eyi ni ọkan ti ẹkọ naa. Iṣẹ map() gba iye ogorun rẹ (b) ati yi pada lati sakani atilẹba rẹ (0 si 100) si sakani ibi-afẹde tuntun (0 si 255). Abajade naa ti wa ni ipamọ ninu oniyipada brightness, eyiti a lo lati kọ iye analog si pin LED.
analogWrite(LEDpin, brightness);// turn the LED on with 60% brightness
Nikẹhin, laini yii fi iye ti a ya pada ranṣẹ si pin LED nipa lilo analogWrite(). Eyi ṣeto iwọn iṣẹ ti LED, ti o n ṣakoso imọlẹ rẹ ni imunadoko. Ẹwa ọna yii ni pe o nilo lati yi oniyipada b pada nikan lati ṣakoso LED, ati iṣẹ map() n ṣe gbogbo awọn iṣiro pataki.
Iṣẹ akanṣe Ifiwe/Ifihan
Ninu fidio naa, olukọni gbe koodu naa soke ati ṣe afihan ipa ti yiyipada oniyipada b. Nigbati b ba ṣeto si 8, atẹle oni-nọmba tẹ iye ti a ya pada ti 20, ati pe LED han kedere pe o ṣokunkun. Yiyipada b si 90 yorisi iye ti a ya pada ti 229, ti o jẹ ki LED imọlẹ pupọ. Ṣeto b si 100 ya pada si 255, eyiti o jẹ imọlẹ kikun. Ifihan iṣe yii han kedere bi iṣẹ map() ṣe rọrun ilana ti ṣiṣakoso awọn iṣelọpọ analog pẹlu awọn iye ogorun ti o rọrun fun olumulo.
Awọn iṣẹ akanṣe ti o jọmọ lati fidio yii
- Ẹkọ 14/31-1: Arduino Millis (ko si idaduro) ati awọn iṣẹ map | SunFounder Robojax
- Ẹkọ 14/31-2: Arduino coding millis() apẹẹrẹ 2 pẹlu iṣẹlẹ
- Ẹkọ 14/31-3: Arduino coding millis() apẹẹrẹ 3 pẹlu bọtini titari
- Ẹkọ 14/31-5: Arduino coding map() apẹẹrẹ 2
Awọn ipin
- [00:00] Ifihan si Ẹkọ Arduino nipasẹ Robojax
- [01:19] Kini millis() ati idi ti o fi lo
- [05:46] Apẹẹrẹ 1: Lilo millis() fun iṣẹlẹ ti o ni akoko
- [08:29] Apẹẹrẹ 2: Lilo millis() pẹlu bọtini titari
- [12:14] Apẹẹrẹ 3: Wiwa titẹ bọtini keji lẹhin idaduro
- [17:20] Ifihan si iṣẹ map()
- [19:47] Alaye koodu fun apẹẹrẹ map()
- [20:41] Ifihan ifiwe ti iṣẹ map()
/*
Lesson 14/31: Arduino coding map( ) example-1
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);//initialize serial monitor with 9600 baud
pinMode(LEDpin, OUTPUT);//set pin as output
int b=8;//60% brightness
int brightness = map(b, 0, 100, 0,255);
Serial.println(brightness);//print it on serial monitor
analogWrite(LEDpin, brightness);// turn the LED on with 60% brightness
}
void loop() {
}
Ohun ti o le nilo
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Orisun & itọkasi
-
Iwe-ẹriDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Ita gbangbaPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Fáìlìs📁
Iwe Itọsọna Olumulo
-
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