Tafuta Msimbo

Somo la 98-9: Kipimo cha Kiwango cha Voltage cha LED Kwa Kutumia Arduino au taa ya kutembea na potentiometer

Somo la 98-9: Kipimo cha Kiwango cha Voltage cha LED Kwa Kutumia Arduino au taa ya kutembea na potentiometer

Mradi huu unakuonyesha jinsi ya kujenga kipimo cha kiwango cha voltage kinachotumia LED tano kama onyesho la bar-graph, linaloendeshwa kabisa na Arduino na potentiometer moja. Unapozungusha kipini, Arduino inasoma voltage inayobadilika kwenye pini ya analogi na kuwasha LED moja kwa kila volt, hivyo safu ya taa "inatembea" juu na chini pamoja na kipini. Ni mojawapo ya njia zilizo wazi zaidi za kuelewa ingizo la analogi, kwa sababu unaweza kuona ubadilishaji wa analogi-hadi-dijitali ukifanyika kwa wakati halisi kama bar ya taa halisi.

5 leds on breadboard with sliding veriable resistor shown connected to Arduino UNO
5 leds on breadboard with sliding veriable resistor shown connected to Arduino UNO

Thamani ya kivitendo hapa inapita mbali zaidi ya onyesho la taa. Ukishaelewa jinsi ya kuoanisha voltage iliyopimwa na seti ya matokeo, unaweza kutumia mtindo huo huo kwa vyombo halisi. Kwa mfano, unaweza kujenga:

  • Kionyeshi cha chaji ya betri kinachoonyesha uwezo uliobaki wa betri ya 12 V au benki ya nishati ya USB kama safu ya LED.
  • Kipimo cha kiwango cha tanki la maji, ambapo sensor ya kuelea hutoa voltage inayolingana na kina.
  • Onyesho la bar ya joto kwa kutumia sensor ya joto ya analogi kama LM35.
  • Kipimo cha nguvu ya ishara au kiwango cha sauti kwa kipokea redio au kipaza sauti.
  • Kisomaji rahisi cha sensor kwa transducer yoyote ya analogi ya 0–5 V (shinikizo, mwanga, msimamo).
  • Kichunguzi cha voltage cha majaribio ya benchi kwa kuangalia reli za nishati bila skrini ya multimeter.

Kwa sababu vizingiti vinahesabiwa kama asilimia ya voltage ya bodi, msimbo huo huo unafanya kazi kwenye bodi za 5 V kama Uno na Mega na kwenye bodi za 3.3 V kwa mabadiliko ya mstari mmoja tu.

Vifaa na Vipengele

Orodha ya sehemu ni ndogo kwa makusudi, na kila kitu kinaelezwa katika sehemu ya mwanzo ya video (kwenye video saa 01:54). Utahitaji:

  • Bodi moja ya Arduino (Uno, Nano, au Mega).
  • LED tano, ikiwezekana za rangi moja ili bar isomeke wazi, ingawa rangi mchanganyiko zinafanya kazi vizuri.
  • Vipinga tano vya kupunguza mkondo. Mafunzo yanatumia vipinga vya 1 kΩ, lakini kitu chochote kuanzia takriban 300 Ω hadi 1 kΩ kitafanya kazi; thamani kubwa hufanya LED kuwa hafifu zaidi (kwenye video saa 05:33).
  • Potentiometer moja. Aina ya kipini cha kuzungusha na aina ya kuteleza zote zinaonyeshwa (kwenye video saa 02:19).
  • Bodi ya mkate na waya za kuruka.

Kidokezo kifupi kuhusu LED yenyewe, kwa kuwa ni muhimu kwa uunganishaji: LED ni diodi, hivyo inapitisha mkondo upande mmoja tu. Upande tambarare wa mwili wa plastiki, na mguu mfupi, ni katodi (hasi). Mguu mrefu ni anodi (chanya). Mafunzo yanapitia alama hii na umbo la kimwili kwa undani (kwenye video saa 02:39).

Thamani ya kipinga si ya kubahatisha. LED hupunguza takriban 2 V, na aina ndogo za 3 mm na 5 mm hutumia takriban 10 mA. Kwa usambazaji wa 5 V, 3 V iliyobaki lazima ipunguzwe kwenye kipinga, hivyo sheria ya Ohm inatoa R = 3 V / 0.01 A = 300 Ω. Hiyo ni thamani ya mwangaza wa juu zaidi; kutumia 1 kΩ ni chaguo salama, lenye mwanga hafifu kidogo (kwenye video saa 04:41).

Mwongozo wa Uunganishaji

Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
wiring for Arduino walking light LEDs
wiring for Arduino walking light LEDs

Sehemu ya LED ya uunganishaji ni sawa na mradi wa awali wa taa inayotembea: kila anodi ya LED inaunganishwa na pini yake ya dijitali, na kila katodi inapitia kipinga hadi reli ya ardhi ya kawaida. Katika mafunzo LED zimeunganishwa na pini 7, 6, 5, 4, na 3 (kwenye video saa 43:04).

Potentiometer ni sehemu mpya pekee. Pini zake mbili za nje zinaenda kwenye reli mbili za nishati — pini moja ya nje hadi ardhi na nyingine hadi 5 V (au 3.3 V ikiwa unapima mfumo wa 3.3 V). Pini ya kati, inayoitwa wiper, ni matokeo na lazima iunganishwe na pini ya analogi A0 (kwenye video saa 43:30). Wiper ndiyo inayozalisha voltage inayobadilika: unapozungusha kipini, wiper inateleza kwenye njia ya kipinga na voltage inayoonyesha inabadilika kwa ulaini kati ya reli mbili.

Jambo moja muhimu: ukiondoa potentiometer wakati mzunguko unaendelea, pini ya analogi inabaki huru na LED zitawaka-waka bila mpangilio. Tabia hiyo inaonyeshwa kwenye video (kwenye video saa 48:52) na ni ukumbusho mzuri kwamba ingizo la analogi daima linahitaji chanzo cha voltage kilichofafanuliwa.

Maelezo ya Msimbo

Msimbo ni mfupi na sehemu kubwa yake ni rahisi, hivyo sehemu hii inalenga tu sehemu ambazo utataka kubadilisha. Mipangilio hii yote iko juu ya sketch.

Ufafanuzi wa pini. Hizi zinaeleza Arduino pini ambazo LED na potentiometer zimeunganishwa. Ikiwa uliunganisha LED zako tofauti, badilisha namba hizi zilingane — mpangilio ni muhimu, kwa sababu LED1 ni kizingiti cha chini kabisa na LED5 cha juu kabisa.

const int potPin = A0;//define a pin to connect potentiometer
const int LED1 = 7;
const int LED2 = 6;
const int LED3 = 5;
const int LED4 = 4;
const int LED5 = 3;

Voltage ya bodi. Hii ndiyo thamani moja muhimu zaidi kupata sawa. Ni rejeleo ambalo kila kizingiti kinahesabiwa dhidi yake. Iweke kuwa 5.0 kwa Uno au Mega, na 3.3 kwa Nano ya 3.3 V au bodi kama hiyo. Ukiiacha vibaya, kila LED itabadilika kwa voltage isiyo sahihi (kwenye video saa 44:19).

float boardVoltage= 5.0;//for UNO and MEGA 5.0V for Nano either 5V or 3.3V

Onyesho la voltage kwenye Serial. Weka hii kuwa true ili kuchapisha voltage iliyopimwa kwenye Serial Monitor kwa 9600 baud, ambayo ni muhimu sana wakati wa kurekebisha. Weka kuwa false ili kunyamazisha matokeo mara kila kitu kinapofanya kazi.

boolean showVoltage = true;//true or false to read voltage in serial monitor

Jinsi ubadilishaji unavyofanya kazi. Kigeuzi cha analogi-hadi-dijitali cha Arduino kinarudisha nambari kutoka 0 hadi 1023, kwa sababu ni kigeuzi cha biti 10 (210 = hatua 1024). Msimbo unabadilisha nambari ghafi kuwa voltage halisi kwa kutumia voltage ya bodi kama rejeleo. Hii ni mstari wa kukumbuka ikiwa utahamia kwenye bodi ya biti 12 kama Due, ambapo ungegawanya kwa 4095 badala yake.

int sensorValue = analogRead(A0);
float voltage = sensorValue * (boardVoltage / 1023.0);

Mantiki ya vizingiti. Badala ya kuweka voltage moja kwa moja, kila hatua inaonyeshwa kama asilimia ya voltage ya bodi. Kwa 95% au zaidi, LED zote tano zinawaka; juu ya 80% nne tu; na kadhalika hadi 20%, ambapo LED moja inawaka. Mbinu hii ya asilimia ndiyo inayofanya sketch kuwa inayoweza kuhamishwa kati ya bodi za 5 V na 3.3 V bila kuandika upya ulinganisho.

if (voltage >= boardVoltage*0.95)
{
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, HIGH);
      digitalWrite(LED5, HIGH);
}

Kwa sababu msimbo unatumia else if, tawi moja tu linaendeshwa kwa kila mzunguko wa loop, hivyo ni idadi sahihi ya LED tu inayowaka kwa wakati mmoja. Ucheleweshaji wa 50 ms mwishoni mwa kila loop huzuia onyesho kupepesa.

Mradi wa Moja kwa Moja na Maonyesho

Ukiwa umepakia sketch, fungua Serial Monitor kwa 9600 baud na ugeuze kipini polepole. Voltage inayochapishwa na upau wa LED hufuatana kwa karibu: kwa takriban 1 V LED moja inawaka, kwa 2 V mbili zinawaka, na kadhalika hadi karibu 4.8 V ambapo zote tano zinawaka (kwenye video saa 47:37). Vipimo huwa ndani ya mia chache za volt ya thamani inayotarajiwa, ambayo ni bora kwa kigeuzi cha biti 10.

Ikiwa hatua zinaonekana kutofautiana kidogo, kwa kawaida ni resistors badala ya msimbo. Mafunzo yanabainisha kuwa resistors za kawaida za filamu ya kaboni zina uvumilivu wa 10%, wakati aina za filamu ya metali ya bluu kwa kawaida ni 1% na hutoa hatua zilizo sawa zaidi na sahihi zaidi (kwenye video saa 48:18).

Unaweza pia kubadilisha potentiometer ya kuzungusha kwa potentiometer ya kuteleza na kupata tabia sawa na hisia ya mstari, ambayo ni chaguo zuri ikiwa unapanga kuweka mita kwenye paneli (kwenye video saa 49:07).

Ikiwa unataka kusogeza mwanga kwa mkono badala ya kwa kipini, hilo limefafanuliwa katika Somo 98-8: Mwanga wa Kutembea kwa Kitufe cha Kubonyeza na LED na Arduino. Na ikiwa unataka tu LED zitembe kwa muda wao wenyewe, angalia Somo 98-7: Mwanga wa Kutembea kwa Kutumia Arduino na LED 5.

Miradi inayohusiana kutoka kwenye video hii

Sura

  • [00:00] Muhtasari wa miradi 10 ya LED
  • [02:29] Misingi ya LED, alama, na hesabu ya resistor
  • [42:25] Utangulizi wa mita ya kiwango cha voltage ya LED
  • [43:04] Kuunganisha LED na potentiometer
  • [43:54] Kuelezea msimbo wa upau wa voltage
  • [44:19] Kuweka rejeleo la voltage ya bodi
  • [46:00] Mantiki ya vizingiti na hatua za asilimia
  • [47:14] Maonyesho: kusoma voltage kwa upau wa LED
  • [48:18] Uvumilivu wa resistor na usahihi
  • [49:07] Kutumia potentiometer ya kuteleza

Bilder

wiring for Arduino walking light LEDs
wiring for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
LED 5 kwenye ubao wa mzunguko na kipinga kinachoteleza kilichoonyeshwa kimeunganishwa kwa Arduino UNO
LED 5 kwenye ubao wa mzunguko na kipinga kinachoteleza kilichoonyeshwa kimeunganishwa kwa Arduino UNO
941-Lessson 98-LED-9: Arduino code walking LED light controlled by potentiometer
Språk: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Filer📁

Arduino-bibliotek (zip)

Användarhandbok