User Tools

Site Tools


projektas_nr.2

Čia yra sena dokumento versija!


Projektas Nr. 2. Sukiojame. Potenciometrai

Ką darome

Kartu su skaitmeniniais kontaktais, Arduino taip pat turi 6 kontaktus, kurie gali būti panaudoti analoginei įvesčiai. Šios įvestys paima įtampą (nuo 0 iki 5 voltų) ir konvertuoja ja į skaitmeninį numerį nuo 0 (0 voltų) iki 1023 (5 voltų) (10 bitų gebos). Labai naudingas prietaisas, skirtas išnaudoti šias įvestis, yra potenciometras (dar vadinamas kintamo dydžio rezistoriumi). Kai jis prijungiamas prie 5 voltų per išorinius kontaktus, vidurinysis kontaktas nuskaito vertę nuo 0 iki 5 voltų, priklausomai nuo kampo, kuriuo jis yra pasuktas (pavyzdžiui, 2,5 voltų viduryje). Mes taipogi galime naudoti grąžinamąsias vertes kaip kintamąjį mūsų programoje.

Grandinės dalys:

  • CIRC-01 Grandinės šablonas x1
  • 2 kontaktų kištukas x4
  • Potenciometras 10 kΩ x1
  • Laidai x3
  • Green LED x1
  • 560 Ω rezistorius(žalias-mėlynas-rudas) x1

Grandinės schema:

Surinkimo šablonas, Surinkimo filmukas

Kodas File > Examples > 3.Analog > AnalogInput (Pavyzdys iš arduino.cc, ten rasite ir kitų šaunių idėjų)

/*
  
 Analoginė įvestis 
  Parodo analoginį įėjimą skaitant analoginį daviklį iš  analoginio pin 0 ir 
  įjungiant ir išjungiant šviesą spinduliuojantį šviesos diodą (LED), prijungtą prie skaitmeninės pin 13. 
 Kiek laiko LED bus įjungtas ir išjungtas priklauso nuo jo
 vertės, gautos iš  analogRead ()

 
 Potenciometras pridedamas prie analoginio įėjimo 0 
  * Ašis į analoginį pin potenciometrą 
  * Viena pusė pin (arba vienas) su korpusu 
  * Kitos pusės pin 5 V 
  * LED anodus (ilgom kojom), pritvirtinam prie skaitmeninės produkcijos 13 
  * LED katodus (trumpom kojom), pritvirtintam prie žemės

  * Pastaba: kadangi dauguma Arduinų yra įterpti LED pridėtam 
  pin 13 ant lentos, LED neprivaloma.

 
 
 http://arduino.cc/en/Tutorial/AnalogInput
 
 */

int sensorPin = 0;    //  pasirinkite įvesties pin potenciometrą
int ledPin = 13;      // pasirinkite pin  LED’ui
int sensorValue = 0;  //  kintamasis saugoti vertės ateina iš daviklio

void setup() {
  // parankame ledipin’ui galia:
  pinMode(ledPin, OUTPUT);  
}

void loop() {
  // skaitykite vertę nuo jutiklio:
  sensorValue = analogRead(sensorPin);    
  // įjunkite ledPin  
  digitalWrite(ledPin, HIGH);  
  // sustabdykite programa kelioms milisekundėmis:
  delay(sensorValue);          
  // išjunkite ledPin :        
  digitalWrite(ledPin, LOW);   
  // sustabdykite programą kelioms milisikundėmis:
  delay(sensorValue);                  
}

Neveikia? (2 dalykai bandymui)

Įsitikinkite, kad potenciometro „slankiojantis“ kontaktas prijungtas prie Arduino analoginio (ne skaitmeninio) kontakto nr.2 (A0-A5 jungtys po maitinimo jungtimis).

Vis dar neveikia? Pabandykite grandinę paleisti atvirkščiai. Kartais tas padeda.

Norite geriau?

Slenksčio jungimas: Kartais prireiks įjungti išėjimo signalą, kai vertė viršys tam tikrą slenkstį. Naudojant potenciometrą tą atliksite, tik reikės pakeisti loop() kodą:

  
void loop() { 
  int threshold = 512; 
  if(analogRead(potPin) > threshold){ digitalWrite(ledPin, HIGH);} 
  else{ digitalWrite(ledPin, LOW);} 
} 
  

Su šia komanda LEDas įsijungs, kai analoginiame kontakte bus vertė, didesnė už 512 (maždaug pusė potenciometro signalo). Šį jautrumą taip pat galima reguliuoti keičiant slenksčio (Threshold) vertę.

Gesimas: Galime LEDo šviesumą reguliuoti tiesiogiai nuo potenciometro. Tam reikia pakeisti LEDo prijungimo vietą - perjunkime iš kontakto 13 į kontaktą 9. Pakeiskime kodo eilutę:

  int ledPin = 13; 

į

int ledPin = 9; 

pakeiskime ir loop() kodą:

void loop() { 
  int value = analogRead(potPin) / 4; 
  analogWrite(ledPin, value); 
} 

Upload the code and watch as your LED fades in relation to your potentiometer spinning. (Note: the reason we divide the value by 4 is the analogRead() function returns a value from 0 to 1024 (10 bits), and analogWrite() takes a value from 0 to 255 (8 bits) )

Controlling a Servo: This is a really neat example and brings a couple of circuits together. Wire up the servo like you did in CIRC-04, then open the example program Knob (File > Examples > Library-Servo > Knob ), then change one line of code.

int potpin = 0; ----> int potpin = 2; 

Upload to your Arduino and then watch as the servo shaft turns as you turn the potentiometer.

Kitas projektas. Spalvotos šviesos gavimas naudojant RGB šviesos diodą.

Atgal į projektus

projektas_nr.2.1445790573.txt.gz · Keista: 2015/10/25 18:29 vartotojo 193.219.47.27