Darasi 14/31-5: Misalin coding map() na Arduino 2
Wannan koyawa tana nuna yadda ake amfani da aikin map() na Arduino don sarrafa hasken LED ta amfani da ƙimar kashi (0–100%) maimakon ƙimar 0–255 da analogWrite() ke buƙata. Wannan dabara ce ta asali wadda ke sauƙaƙa lambar ku kuma ta sa ta zama mai fahimta sosai, domin kuna iya tunani cikin kashi maimakon ƙimar byte na sabani.
Wannan fasaha tana da muhimmanci ga kowane aiki inda kuke buƙatar daidaita ƙimar karatu daga na'urori ko sarrafa sigina. Misali, kuna iya amfani da ita don:
- Sarrafa hasken LED ko gudun mota bisa ƙimar karatun potentiometer.
- Canza fitar firikwensin zafin jiki (misali, 0–1023) zuwa ma'aunin Celsius ko Fahrenheit.
- Daidaita shigar analog na joystick don sarrafa matsayin motar servo.
- Ƙirƙirar mu'amalar mai amfani mai sauƙi inda ake amfani da ƙimar kashi don saita matakin ƙarfin na'ura.
A ƙarshen wannan darasi, za ku iya rubuta lamba mai tsabta, mai sauƙin kiyayewa wadda ke da sauƙin karantawa da daidaitawa.
Kayan aiki/Abubuwan haɗi
Wannan aikin yana amfani da ƙaramin adadin abubuwa, wanda ya sa ya dace da masu farawa. Kuna buƙatar:
- Kwamfutar Arduino (misali, Uno).
- LED.
- Resistor na 220-ohm.
- Wayoyin haɗi.
- Breadboard (na zaɓi amma ana ba da shawarar).
Jagorar Haɗin Waya
Haɗin waya na wannan aikin yana da sauƙi sosai, kamar yadda aka nuna a bidiyon (a bidiyo a 20:47). An haɗa LED zuwa pin 3 na Arduino ta hanyar resistor na 220-ohm mai iyakance wutar lantarki.
Haɗa anode (ƙafar da ta fi tsayi) na LED zuwa pin 3 ta hanyar resistor. Haɗa cathode (ƙafar da ta fi guntu) na LED zuwa filin ƙasa (GND) akan Arduino.
Bayanin Lambar
Wannan misalin yana mai da hankali kan aikin da mai amfani ya ƙirƙira wanda ke sauƙaƙa sarrafa hasken LED. Lambar an gina ta ne a kusa da aikin al'ada da ake kira pwmValue(), wanda shine mabuɗin sa lambar ta zama mai fahimta.
Bari mu raba sassan lambar da za a iya daidaitawa:
int LEDpin = 3; //defind pin for LED
Wannan layin yana bayyana pin ɗin Arduino wanda aka haɗa LED ɗin. Kuna iya canza lambar 3 zuwa kowane pin mai iya PWM akan kwamfutar Arduino ɗinku.
Jigon aikin shine aikin al'ada pwmValue(). Wannan aikin yana ɗaukar ƙimar kashi a matsayin shigarwa kuma yana canza shi zuwa kewayon 0–255 da analogWrite() ke amfani da shi. Anan ne aikin map() ke yin sihirinsa.
int pwmValue(int percent)
{
if(percent >=0 && percent <=100)
{
return map(percent, 0,100, 0,255);
}else
{
return 0;
}
}
Don amfani da wannan aikin, kawai kuna kiransa da ƙimar hasken da kuke so. Aikin zai dawo da ƙimar da ta dace don analogWrite(). Misali, pwmValue(60) zai dawo da 153, wanda yayi daidai da 60% na 255. Aikin kuma ya haɗa da duba tsaro don tabbatar da ƙimar kashi tsakanin 0 da 100, yana dawo da 0 idan ya wuce wannan kewayon.
A cikin aikin setup(), kuna iya ganin yadda ake amfani da wannan:
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
Anan, an saita maɓallin b zuwa ƙimar hasken da kuke so. Ana amfani da aikin pwmValue(b) don buga ƙimar da aka canza zuwa Serial Monitor da kuma saita hasken LED. Don canza hasken LED, kawai kuna buƙatar canza ƙimar b. Aikin map() yana sarrafa duk lissafin da ake buƙata a gare ku.
Aiki/Nunin Kai tsaye
A cikin bidiyon, mai gabatarwa yana nuna aikin ta hanyar canza ƙimar maɓallin b da loda lambar zuwa Arduino. Lokacin da aka saita b zuwa 60, lambar tana canza shi zuwa 153 kuma LED ɗin yana haskakawa a 60% na ƙarfinsa. Canza b zuwa 90 yana canza zuwa 229, yana sa LED ɗin ya fi haske sosai. Saita shi zuwa 100 yana canza zuwa 255, wanda shine matsakaicin haske. Nunin yana nuna a sarari yadda aikin map() ke ba ku damar sarrafa LED ta amfani da ƙimar kashi mai fahimta, yayin da Serial Monitor ke tabbatar da ainihin ƙimar 0–255 da ake aikawa zuwa pin (a bidiyo a 21:29).
Ayyukan da suka shafi wannan bidiyo
- Darasi 14/31-1: Arduino Millis (ba jinkiri) da ayyukan map | SunFounder Robojax
- Darasi 14/31-2: Misalin coding na Arduino millis() 2 tare da taron
- Darasi 14/31-3: Misalin coding na Arduino millis() 3 tare da maɓallin turawa
- Darasi 14/31-4: Misalin coding na Arduino map() 1
Babuka
- [00:00] Gabatarwa ga ayyukan Millis da map
- [01:19] Menene Millis kuma me yasa ake amfani da shi
- [05:46] Amfani da Millis tare da taron don ɗaukar mataki
- [08:35] Misalin Millis 2 tare da maɓallin turawa
- [12:14] Misalin Millis 3 don duba latsawa biyu na maɓalli
- [17:20] Gabatarwa ga aikin map()
- [19:47] Misalin lamba don canza kashi zuwa hasken LED
- [20:47] Nunin kai tsaye na aikin map()
- [22:41] Ƙirƙirar aikin al'ada don sarrafa map
/*
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
Abin da zaka iya bukata
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
-
Sauran
Albarkatun da kuma shafukan da za a duba
-
WajePurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Fayiloli📁
Jagoran Mai Amfani
-
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