Wa Koodu

Ẹ̀kọ́ 14/31-4: Àpẹẹrẹ map() koodu Arduino 1

Ẹ̀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

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()

Aworan

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

 
 }
 

Orisun & itọkasi

Fáìlìs📁

Iwe Itọsọna Olumulo