Bincika Lambar

Darasi na 14/31-4: Misali na coding map() na Arduino 1

Darasi na 14/31-4: Misali na coding map() na Arduino 1

Wannan koyarwar wani bangare ne na jerin shirye-shiryen Arduino kuma tana mai da hankali kan amfani da aikin map(). A cikin wannan darasi, za ku koyi yadda ake canza darajar kashi (0–100) zuwa darajar PWM (Pulse Width Modulation) (0–255) don sarrafa hasken LED. Maimakon yin lissafin da hannu cewa 60% yayi daidai da 153, aikin map() yana sarrafa juyar da layi a gare ku, yana sa lambar ku ta zama mai tsabta kuma mafi fahimta.

Wannan dabara tana da muhimmanci ga yawancin aikace-aikace na gaske inda kuke buƙatar fassara karatun firikwensin ko shigarwar masu amfani zuwa jeri daban-daban. Misali, kuna iya amfani da shi don:

  • Sarrafa saurin motar DC bisa karatun potentiometer.
  • Nuna ƙimar firikwensin zafin jiki a kan sikelin 0-100%.
  • Taswirar haɗin gwiwar joystick zuwa kusurwoyin motar servo.
  • Daidaita hasken LED bisa firikwensin hasken yanayi.
  • Canza karatun analog na 0-5V zuwa ƙimar dijital 0-1023 ko akasin haka.

Kayan aiki/Abubuwan haɗi

Don bin wannan aikin, kuna buƙatar waɗannan abubuwan:

  • Allon Arduino (Uno, Nano, da sauransu)
  • LED
  • Resistor na 220-ohm
  • Wayoyin haɗi
  • Breadboard (na zaɓi, amma an ba da shawarar)

Jagorar haɗin waya

A cikin bidiyon, malami yana nuna aikin ta amfani da saitin wayoyi daga darasin da ya gabata kan rage hasken LED. Kewayen yana da sauƙi: haɗa anode (ƙafar doguwa) na LED zuwa resistor na 220-ohm, sannan haɗa ƙarshen wannan resistor zuwa fil 3 na dijital akan Arduino. Haɗa cathode (ƙafar gajeru) na LED kai tsaye zuwa filin ƙasa (GND) akan Arduino.

Bayanin lambar

Lambar wannan misalin tana da taƙaitacciya sosai, tare da ainihin dabaru a cikin aikin setup(). Bari mu raba sassan da mai amfani zai iya daidaitawa.

int LEDpin = 3; //defind pin for LED

Wannan layin yana bayyana filin Arduino wanda LED ɗinku yake haɗe. A wannan misalin, an saita shi zuwa fil 3, wanda fil ne mai iya PWM, wanda ake buƙata don fitar da analog. Kuna iya canza wannan lambar idan kun haɗa LED ɗinku zuwa wani fil na PWM daban.

int b=8;//60% brightness

Wannan shine mabuɗin mai canzawa da za ku canza don gwada matakan haske daban-daban. Yana wakiltar hasken da ake so a matsayin kashi. Sharhin a cikin lambar yana cewa "60%", amma an saita ƙimar zuwa 8 don dalilai na nunawa a cikin bidiyon. Kuna iya canza wannan zuwa kowane lamba tsakanin 0 da 100. Misali, saita b = 60 zai wakiltar matakin haske na 60%.

int brightness = map(b, 0, 100, 0,255);

Wannan shine zuciyar darasin. Aikin map() yana ɗaukar ƙimar kashi ɗinku (b) kuma ya canza shi daga ainihin jerinsa (0 zuwa 100) zuwa sabon jerin da ake so (0 zuwa 255). Sakamakon ana adana shi a cikin mai canzawa brightness, wanda aka yi amfani da shi don rubuta ƙimar analog zuwa filin LED.

analogWrite(LEDpin, brightness);// turn the LED on with 60% brightness

A ƙarshe, wannan layin yana aika ƙimar da aka taswira zuwa filin LED ta amfani da analogWrite(). Wannan yana saita zagayowar aikin LED, yana sarrafa haskensa yadda ya kamata. Kyakkyawan wannan hanyar shine kuna buƙatar canza mai canzawa b kawai don sarrafa LED, kuma aikin map() yana sarrafa duk lissafin da ake buƙata.

Aikin kai tsaye/Nunawa

A cikin bidiyon, malami yana loda lambar kuma yana nuna tasirin canza mai canzawa b. Lokacin da aka saita b zuwa 8, mai kula da serial yana buga ƙimar da aka taswira na 20, kuma LED ɗin yana da duhu a bayyane. Canza b zuwa 90 yana haifar da ƙimar da aka taswira na 229, yana sa LED ɗin ya fi haske sosai. Saita b zuwa 100 yana taswira zuwa 255, wanda shine cikakken haske. Wannan nunin aiki a bayyane yana nuna yadda aikin map() ke sauƙaƙa tsarin sarrafa fitarwar analog tare da ƙimar kashi masu sauƙin amfani.

Ayyuka masu alaƙa daga wannan bidiyo

Babuka

  • [00:00] Gabatarwa ga Kwas ɗin Arduino na Robojax
  • [01:19] Menene millis() kuma me yasa ake amfani da shi
  • [05:46] Misali 1: Amfani da millis() don taron da aka tsara lokaci
  • [08:29] Misali 2: Amfani da millis() tare da maɓallin turawa
  • [12:14] Misali 3: Gano latsa maɓallin na biyu bayan jinkiri
  • [17:20] Gabatarwa ga aikin map()
  • [19:47] Bayanin lambar don misalin map()
  • [20:41] Nunin kai tsaye na aikin map()

Hotuna

Sunfounder car assembled
Sunfounder car assembled
919-Lesson 14/31-4: Arduino coding map() example 1
Harshe: C++
/*
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() {

 
 }
 

Albarkatun da kuma shafukan da za a duba

Fayiloli📁

Jagoran Mai Amfani