Raadi Koodka

Cashirka 14/31-4: Tusaale 1 ee map() ee Arduino coding

Cashirka 14/31-4: Tusaale 1 ee map() ee Arduino coding

Tutorialkan wuxuu qayb ka yahay taxane ku saabsan barnaamijyada Arduino wuxuuna diiradda saarayaa isticmaalka wax ku oolka ah ee shaqada map(). Casharkan, waxaad baran doontaa sida loo beddelo qiimaha boqolleyda (0–100) oo loo beddelo qiimaha PWM (Pulse Width Modulation) (0–255) si aad u xakamayso iftiinka LED. Halkii aad si gacanta ah u xisaabin lahayd in 60% ay la mid tahay 153, shaqada map() waxay kuu qabataa beddelka tooska ah, taasoo ka dhigaysa koodhkaaga mid nadiifsan oo fudud.

Farsamadani waxay lama huraan u tahay codsiyo badan oo dhab ah oo aad u baahan tahay inaad u turjunto akhrinta sensor-ka ama gelinta isticmaalaha ee kala duwan. Tusaale ahaan, waxaad u isticmaali kartaa si aad:

  • U xakamayso xawaaraha matoorka DC iyadoo lagu salaynayo akhrinta potentiometer-ka.
  • U muujiso qiimaha sensor-ka heerkulka ee miisaanka 0-100%.
  • U sawirto isku-duwayaasha joystick-ka xagasha matoorka servo.
  • U hagaajiso iftiinka LED iyadoo lagu salaynayo sensor-ka iftiinka deegaanka.
  • U beddelo akhrinta analog-ga 0-5V qiimaha dijitaalka ah 0-1023 ama si ka soo horreysa.

Qalabka/Qaybaha

Si aad ula socotid mashruucan, waxaad u baahan doontaa qaybaha soo socda:

  • Guddiga Arduino (Uno, Nano, iwm.)
  • LED
  • Resistor 220-ohm ah
  • Fiilooyinka jumper-ka
  • Breadboard (ikhtiyaar, laakiin lagu taliyay)

Hagaha Xiritaanka

Fiidiyowga, macallinku wuxuu muujinayaa mashruuca isagoo isticmaalaya qaab xiritaan ka yimid casharkii hore ee ku saabsanaa hoos u dhaca LED. Wareeggu waa toos: ku xir anode-ka (lugta dheer) ee LED-ka resistor-ka 220-ohm, oo ku xir dhamaadka kale ee resistor-ka pin-ka dijitaalka ah ee 3 ee Arduino. Ku xir cathode-ka (lugta gaaban) ee LED-ka si toos ah ugu xir pin-ka dhulka (GND) ee Arduino.

Sharaxaadda Koodhka

Koodhka tusaalahan aad buu u kooban yahay, iyadoo xudunta macquulka ah ay ku jirto shaqada setup(). Aynu kala qaadno qaybaha isticmaaluhu beddeli karo.

int LEDpin = 3; //defind pin for LED

Sadarkan wuxuu qeexayaa pin-ka Arduino ee LED-kaagu ku xiran yahay. Tusaalahan, waxaa loo dejiyay pin 3, kaas oo ah pin awood u leh PWM, oo lagama maarmaan u ah wax soo saarka analog-ga. Waxaad beddeli kartaa lambarkan haddii aad ku xirto LED-kaaga pin-ka PWM oo kala duwan.

int b=8;//60% brightness

Kani waa doorsoomeyaasha muhiimka ah ee aad wax ka beddeli doonto si aad u tijaabiso heerarka iftiinka ee kala duwan. Waxay u taagan tahay iftiinka la doonayo sida boqolleyda. Faallooyinka koodhka waxay yiraahdaan "60%", laakiin qiimaha waxaa loo dejiyay 8 ujeedooyin muujin ah fiidiyowga. Waxaad tan u beddeli kartaa tiro kasta oo dhammaystiran oo u dhaxaysa 0 iyo 100. Tusaale ahaan, dejinta b = 60 waxay u taagan tahay heer iftiin 60% ah.

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

Kani waa qalbiga casharka. Shaqada map() waxay qaadataa qiimahaaga boqolleyda (b) waxayna u beddeshaa laga bilaabo kala duwanaanshaheeda asalka ah (0 ilaa 100) una beddeshaa kala duwanaansho cusub oo la beegsanayo (0 ilaa 255). Natiijada waxaa lagu kaydiyaa doorsoomaha brightness, kaas oo markaas loo isticmaalo in lagu qoro qiimo analog ah pin-ka LED.

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

Ugu dambeyntii, sadarkan wuxuu u diraa qiimaha la beddelay pin-ka LED iyadoo la isticmaalayo analogWrite(). Tani waxay dejisaa wareegga shaqada ee LED, si wax ku ool ah u xakameynaysa iftiinkiisa. Quruxda habkani waa inaad kaliya u baahan tahay inaad beddesho doorsoomaha b si aad u xakamayso LED-ka, shaqada map() waxay qabataa dhammaan xisaabinta lagama maarmaanka ah.

Mashruuca Tooska ah/Muujinta

Fiidiyowga, macallinku wuxuu soo galiyaa koodhka wuxuuna muujinayaa saamaynta beddelka doorsoomaha b. Marka b loo dejiyo 8, kormeeraha taxanaha ah wuxuu daabacaa qiimaha la beddelay ee 20, LED-kiina si muuqata ayuu u yara iftiimayaa. Beddelka b ilaa 90 wuxuu keenayaa qiimo la beddelay oo ah 229, taasoo ka dhigaysa LED-ka mid aad u ifaya. Dejinta b ilaa 100 waxay u beddeshaa 255, taasoo ah iftiin buuxda. Muujintan wax ku oolka ah waxay si cad u tusinaysaa sida shaqada map() u fududeyso habka xakamaynta wax soo saarka analog-ga iyadoo la isticmaalayo qiimayaal boqolleed oo saaxiibtinimo u leh isticmaalaha.

Mashruucyada la xiriira fiidiyowgan

Cutubyada

  • [00:00] Hordhaca Koorsada Arduino ee Robojax
  • [01:19] Waa maxay millis() iyo sababta loo isticmaalo
  • [05:46] Tusaale 1: Isticmaalka millis() dhacdo waqtiyeysan
  • [08:29] Tusaale 2: Isticmaalka millis() oo leh badhan riix
  • [12:14] Tusaale 3: Ogaanshaha riixista badhanka labaad ka dib dib u dhac
  • [17:20] Hordhaca shaqada map()
  • [19:47] Koodhka socodsiinta tusaalaha map()
  • [20:41] Muujinta tooska ah ee shaqada map()

Sawirro

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

 
 }
 

Kheyraadka & Tixraacyada

Faylasha📁

Buugga Isticmaalaha