Verkefni5 - BHB2187/Verksmidja1 GitHub Wiki
Verkefni 5
5.1 Pushbutton (Digital Input)
i:
Þá er ljósið alltaf kveikt þá að þú ýtir á takkan
ii:
Til þess að hann virki
iii:
int buttonState = 0;
void setup() { pinMode(2, OUTPUT); pinMode(13, INPUT); }
void loop() { // read the state of the pushbutton buttonState = digitalRead(2); // check if pushbutton is pressed. if it is, the // button state is HIGH if (buttonState == HIGH) { digitalWrite(13, LOW); } else { digitalWrite(13, HIGH); } delay(10); // Delay a little bit to improve simulation performance }
Tenglar
https://github.com/BHB2187/Verksmidja1/tree/master/Arduino
https://github.com/BHB2187/Verksmidja1/blob/master/20191122_112910_1_1.mp4
5.2 Potentiometer (Analog input)
i:
Microcontrollers eru færir um að greina tvöfald merki: er ýtt á hnappinn eða ekki? Þetta eru digital merki. Þegar örstýring er knúin frá fimm volt, þá skilur hún núll volt (0V) sem tvískiptur 0 og fimm volt (5V) sem tvöfaldur 1. Heimurinn er þó ekki svo einfaldur og finnst gaman að nota gráa lit. Hvað ef merkið er 2,72V? Er það núll eða eitt? Við þurfum oft að mæla merki sem eru mismunandi; þetta eru kölluð analog merki. 5V analog skynjari getur sent frá sér 0,01V eða 4,99V eða allt þar á milli. Sem betur fer hafa næstum allir örstýringar tæki innbyggt í þau sem gerir okkur kleift að breyta þessum spennum í gildi sem við getum notað í forriti til að taka ákvörðun. Það er verið að vinna með Analog In A0 og Digital (PWM-) 13.
ii Þá virkar það ekki
5.3 Using the serial monitor
i:
Stillir gagnahraðann í bitum á sekúndu (baud) fyrir gagnaflutning. Til að eiga samskipti við Serial Monitor skaltu gæta þess að nota eitt af baudhraðunum sem taldir eru upp í valmyndinni neðst í hægra horninu á skjánum. Þú getur samt tilgreint aðra tíðni - til dæmis til að hafa samskipti yfir pinna 0 og 1 við íhlut sem krefst ákveðins baudhraða. Ef ég breyti því þá breytist hversu hratt talan 266 birtist á skjáinn.
5.4 Photoresistor (Analog Input)
i:
Við viljum skrifa til LED með töluna á milli 0 (slökkt) og 255 (full birta), við munum nota „map“ blokkina til að gera nokkurn kross margföldun fyrir okkur. Afhverju þarf úttakið í analogWrite að vera á bilinu 0-255? Því annars virkar það ekki.
5.5 Ultrasonic Distance Sensor
i:
int distanceThreshold = 0;
int cm = 0;
long readUltrasonicDistance(int triggerPin, int echoPin) { pinMode(triggerPin, OUTPUT); // Clear the trigger digitalWrite(triggerPin, LOW); delayMicroseconds(2); // Sets the trigger pin to HIGH state for 10 microseconds digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); pinMode(echoPin, INPUT); // Reads the echo pin, and returns the sound wave travel time in microseconds return pulseIn(echoPin, HIGH); }
void setup() { Serial.begin(9600);
pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); }
void loop() { // set threshold distance to activate LEDs distanceThreshold = 350; // measure the ping time in cm cm = 0.01723 * readUltrasonicDistance(7, 6); // convert to inches by dividing by 2.5 Serial.print(cm); Serial.print("cm, "); Serial.println("in"); if (cm > distanceThreshold) { digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); } if (cm <= distanceThreshold && cm > distanceThreshold - 100) { digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); } if (cm <= distanceThreshold - 100 && cm > distanceThreshold - 250) { digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, LOW); } if (cm <= distanceThreshold - 250 && cm > distanceThreshold - 350) { digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); } if (cm <= distanceThreshold - 350) { digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); } delay(100); // Wait for 100 millisecond(s) }
ii:
Segir hversu lengi það á að bíða.
5.6 Project 5: Mood Cue (servo motor)
i:
Á endanum geyma þéttur hleðslu. Það er margt sem þú gerir með þétta.
Þéttar fara vel í rafrænum síum - til að sía út tíðni sem þú vilt ekki.
Low pass sía - lágar tíðnir birtast við framleiðsluna, háar tíðnir eru skornar út.
Hápassasía - háar tíðnir birtast við framleiðsluna, lág tíðni er skorin út.
Saman með spóluljósinu búa þeir til resonator hringrás sem getur skorið aðeins úr þröngu bili eða jafnvel magnað eina tíðni.
Band-pass sía sem leyfir aðeins ákveðnum tíðnum að fara.
Þétta eru oft notuð til að hjálpa til við að koma á stöðugleika í aflgjafa - þar sem þeir mynda shunt í AC en láta DC vera í friði, ef þú vilt stöðugt aflgjafa muntu líklega nota þétta til að slökkva á hávaða og skilja eftir góða stöðuga DC spennu við framleiðsluna .
Tímabundin svörun RC hringrásar er einnig ótrúlega gagnleg fyrir tímasetningu.
Tímabundin svörun RC hringrás
Þar sem það tekur fyrirsjáanlegan tíma að ná tiltekinni spennu er hægt að nota það til að tímasetja rafræn skipti.
Tíminn á og slökkt er stilltur af þéttinum og tveimur viðnámum í tímasetningarkerfinu sem sýnt er hér að ofan.
Aftur, þar sem þeir geyma hleðslu, er hægt að nota þau sem hluta af kerfinu til að umbreyta AC í DC.
Án þess að nota þéttarann, í stað þess að vera rippled DC, þá lítur það út eins og sinusbylgja með botnhlutann flett upp.
Það er bara lítil sýnataka. Þeir gera ýmislegt, þar á meðal aðgreining og samþættingu (útreikningur aðgerða), aftengja hlutdrægar rafrásir, skipta spennufasa til að bæta upp afl og halda gjald fyrir tímabundna notkun.
Og svo eru allir hlutirnir sem þú vilt ekki þétti fyrir, en verður að takast á við samt sem áður vegna þess að rafrýmd er líkamlegur hlutur, ekki eitthvað sem er aðeins til á tækjum sem tilgreina það. Eins og merkjatengsl, tala um viðbrögð við inntak og úttak, bæta við hávaða, vera viðkvæm fyrir hljóðeinangri osfrv.
ii:
Vegna þess að kerfin sem þau voru hönnuð til að breyta snúningshreyfingu í línulega, venjulega með svið sem er verulega minna en 180 gráður (líklega meira eins og 120 gráður).
Næst vegna þess að stjórnkerfið fyrir PWM stöðu púls er ekki fær um að koma beiðnum yfir handahófskennt svið - verður að takmarka kortlagningu púlsbreiddar til stöðu og það er skynsamlega sett upp til að kortleggja eitthvað tengt gagnlegu sviðinu.
Vegna þess að þessar takmarkanir eru í verki, er hægt að nota nokkuð venjulegan snúnings potentiometer á minna en 360 gráðu svið til að staðsetja skynjun.
Í ljósi þess að gagnlegt svið er takmarkað og mögulega tiltölulega auðvelt fyrir skemmdir á skemmdum með ofsnúningi er gírkassinn venjulega smíðaður með vélrænni snúningsstoppi einhvers staðar utan venjulegs sjálfs snúnings.
5.7 Project 6: Light Theremin (hátalari og ljósviðnám)
i:
Með því að nota PWM er tímabil púlsanna stöðugt. Þú getur stjórnað því hvaða hlutfall af þeim tíma sem kvikmyndin er upp á móti niðri á hverju tímabili. Eins og þú komst að í Color Mixing Lamp verkefninu er þetta kallað duty cycle.
ii:
Sem eining bylgjutíðni er hertz jafnt og einn hringrás á sekúndu. Hertz er mikið notað í rannsóknum á rafsegulbylgjum og til lengdar rannsókn á málinu sjálfu, vegna þess að allt í alheiminum samanstendur af titrandi atómum. Það er líka algengt í rafmagnstækni, vegna þess að rafmagn er framleitt með snúnings hverfla sem skapa straum sem skiptir með föstri tíðni.
Ef þú veist tíðni (f) og bylgjulengd (λ) bylgjulögunar, geturðu margfaldað þetta saman til að fá hraða bylgjunnar: f × λ = v. Þar af leiðandi geturðu fengið tíðnina ef þú veist hraða og bylgjulengd :f= λ/v
Til að fá tíðni í hertz verður hraðinn að vera í „lengdareiningum“ á sekúndu og bylgjulengdina verður að mæla í sömu „lengdareiningum“. Til dæmis, ef hraðinn er mældur í m / s, verður að mæla bylgjulengdina í metrum.