2012.11.14.
19:52

Írta: harsanyireka

Szenzorok, érzékelők

"Az érzékelő vagy szenzor olyan elem, amely egy mérendő tulajdonságtól függő jelet szolgáltat. A mérendő tulajdonság és a jel egyaránt lehet fizikai, kémiai, biológiai stb. jellegű. Fontos, hogy a mérendő tulajdonság, és az érzékelő által szolgáltatott jel egymásnak kölcsönösen egyértelmű függvényei legyenek."
http://hu.wikipedia.org/wiki/%C3%89rz%C3%A9kel%C5%91

Amit érzékelhet: fény, mozgás, mágneses tér, távolság, gyorsulás, páratartalom, hőmérséklet, nyomás, érintés, stb. A fizikai, kémiai vagy biológiai változásokat elektromos jelekké alakítják.

Az alábbi lista nem teljes, inkább csak ízelítő:  

Mozgás érzékelése

 

Mozgásérzékelő

Adott területen érzékeli a mozgást, áltlában infrávörös fénnyel működik. PIR-nek is hívják (passive infrared). Arduinohoz is kapható, 5-12V-on működik:

példa: http://www.ladyada.net/learn/sensors/pir.html

arduino-pir-motion-sensor-1.jpg

    

Mágneses kapcsoló

Ajtóra, ablakra stb szerelhető. Működése: http://www.hw2sw.com/2012/09/07/connecting-a-magnetic-reed-door-switch-into-arduino/

példa: http://m.instructables.com/id/simpleTweet01python/?ALLSTEPS

magneticswitch.jpeg

     

Digitális mágneses érzékelő modul

DFR0033 típus.

példa: http://www.dfrobot.com/wiki/index.php/Digital_magnetic_sensor_(SKU:_DFR0033)

(DIY elektromágneses mező érzékelése: http://hackaday.com/2010/12/31/arduino-emf-sensor/)

DFR0033-340x340.jpg

  

Digitális dőlés szenzor modul

példa: http://www.dfrobot.com/wiki/index.php?title=DFRobot_Tilt_Sensor_(SKU:DFR0028)

DFR0028-1-340x340.jpg

Giroszkóp

Tinkerkit 2 tengelyes T000060

példa: http://www.robotshop.com/gorobotics/articles/microcontrollers/arduino-5-minute-tutorials-lesson-7-accelerometers-gyros-imus

Tinkerkit Gyroscope Sensor 1X_MED.jpg

Gyorsulásmérő

példa: http://www.robotshop.com/gorobotics/articles/microcontrollers/arduino-5-minute-tutorials-lesson-7-accelerometers-gyros-imus

példa Arduino MEGA-hoz: http://lex.iguw.tuwien.ac.at/toysrus/index.php/Accelerometer_Tinkerkit

3 Axis Accelerometer_MED.jpg

Digitális rezgés érzékelő modul

Ebből is több fajta van, pl.

1409486_thumb240.jpg

36-97-large-340x340.jpg

Az utóbbihoz manual itt: http://www.dfrobot.com/wiki/index.php?title=DFRobot_Digital_Vibration_Sensor_(SKU:DFR0027)

   

Érintés vagy megnyomás érzékelése

 

Nyomásérzékeny ellenállás

FSR = Force Sensitive resistor

példa: http://garagelab.com/profiles/blogs/tutorial-force-sensitive-resistor-and-arduino

DIY verzió: http://www.instructables.com/id/DIY-Force-Sensitive-Resistor-FSR/

fsr_pic.jpg

Hajlás szenzor (flex, bend)

Példa: flex szenzor LEDsorral: http://arduinobasics.blogspot.hu/2011/05/arduino-uno-flex-sensor-and-leds.html

fles.jpg

Nyúlás szenzor (stretch)

DIY verzió: http://www.instructables.com/id/Connecting-a-textile-analog-sensor-to-Arduino/?ALLSTEPS

imagesco-14-flexible-stretch-B.jpg

Kapacitív érzékelő

Az arduino capacitive sensing library-jével akár egy alufólia darabbal is készíthetünk érintés szenzort:

http://www.arduino.cc/playground/Code/CapacitiveSensor

http://arduino.cc/playground/Main/CapacitiveSensor?from=Main.CapSense

Vagy egyéb hardwerekkel felerősíthetjük a jelet, pl. MPR121 (touch senor):

http://bildr.org/2011/05/mpr121_arduino/ 

 

Érintés érzékelő modul (touch)

Kapacitív érzékelő ez is. 

Másodikhoz példa: http://www.dfrobot.com/wiki/index.php/DFRobot_Capacitive_Touch_Sensor_(SKU:DFR0030)

1407429_thumb240.jpg

Sensors_for_arduino4.png

Piezoelektromos szenzor

Olyan anyagból készül amiben összenyomás hatására feszültség keletkezik. Burkolattal és anélkl is kapható. 

Példa lejjebb - hang érzékelőknél.

Távolság érzékelése

Infrás távolságérzékelő

Sharp infravörös távolságérzékelő szenzor

"A robotikában használt egyik speciális szenzor a Sharp infravörös távolságérzékelő szenzor. Amint az alábbi képről is jól látható többféle szenzor is létezik, különböző méréstartománnyal. A szenzor az ún. háromszögeléses módszerrel működik. A szenzor egy keskeny infravörös fénnyalábot bocsát ki (az IR fény hullámhossza 850nm ± 70nm). A kibocsátott IR fény a tárgyakról visszaverődik. Az érzékelő egy optikával leképezi a visszavert fényt egy CCD-re. Attól függően hogy milyen messze van a céltárgy, más-más szögben érkezik vissza a visszavert fény, és ennek megfelelően más-más CCD pixelre fókuszálódik. Ebből már meghatározható a távolság. Van analóg és digitális kimenetű szenzor is. Az analóg szenzor egy, a távolsággal fordítottan arányos, nemlineáris, analóg kimeneti feszültségjelet ad."
http://www.hobbielektronika.hu/cikkek/will-i_v20_robotika_es_avr_kezdoknek.html?pg=6

41y9YtPJC6L._SL500_AA300_.jpg 

Ultrahangos távolságérzékelő

Tutorial: http://arduino.cc/en/Tutorial/Ping?from=Tutorial.UltrasoundSensor

us-100-ultrasonic-sensor-module-with-temperature-compensation-range-for-arduino_ksxpjy1346397831272.jpg

IR vevő modul

Kell hozzá egy infra kibocsátó egység is amit érzékelni tud, pl. Infra LED. Magában is kapható. Példa az oldal közepén: http://www.diyphonegadgets.com/2012/04/tutorial-how-to-control-ir-helicopter.html

1407433_thumb240.jpg

   

Fény érzékelése

LDR, Fotóellenállás

A fotoellenállások fénytől függő ellenállások. A fényérzékeny rétegek kialakítására nagyon erős fényelektromos tulajdonságokkal bíró anyagokat (kadmium-szulfid CdS, ólomszulfid PbS stb.) használnak. Minél jobban megvilágítunk egy fotoellenállást, annál inkább csökken az ellenállása. A fotoellenállás meghatározott fényerősséghez tartozó ellenállásértéke azonos típusoknál is meghatározott tartományban szór, ez a tartomány az ún. szórási sáv. A fotoellenállás meghatározott fényhullámhossznál éri el a legnagyobb érzékenységet, ezt spektrális érzékenységnek nevezzük. Vannak olyan fotoellenállások amelyek kimondottan speciális hullámhosszra, azaz színekre érzékenyek.

Analóg pinbe kötve analogRead-del kiolvassuk az értékeket. Lehet esetleg kalibrálni is: 
http://arduino.cc/en/Tutorial/Calibration

LDR1.jpg

Modul formában is létezik:

1407410_thumb240.jpg

Színszenzor modul

TCS3200, arduino kódja letölthető innen: http://www.dfrobot.com/index.php?route=product/product&product_id=540#.UKPlTeOe-0I

1407447_thumb240.jpg

 

Hang érzékelése

 

Piezo elektromos szenzor (lásd feljebb) 

Példa - érzékelőkét: kopogás érzékelése bejegyezés. 
Másik példa- hangforrásként: http://www.adafruit.com/blog/2009/05/19/piezo-with-an-arduino-photoresistor/

piezo.jpg

 

Hang érzékelő modul 

példa: http://www.emartee.com/product/42148/Mini%20Sound%20Sensor%20%20Arduino%20Compatible

sound sensor for Arduino.jpg

 

Hőmérséklet érzékelése

 

Digitális hőmérő modul

Másodikhoz példa: http://www.emartee.com/product/41849/Arduino%20Temperature%20Sensor%20DS18B20

DS18B20 

1407431_thumb240.jpg

DS18B20

bb_digital_ds18b20_1(1).jpg

 

Hőmérséklet mérése LM35-tel:

http://www.danielandrade.net/2008/07/05/temperature-sensor-arduino/

lm35dz.jpg

Hőmérséklet és páratartalom szenzor

példa: http://garagelab.com/profiles/blogs/tutorial-humidity-and-temperature-sensor-with-arduino

arduino-digital-temperature-humidity-sensor-module_arvkjo1339666614085.jpg 

Digitális hőmérséklet és páratartalom szenzor

példa: http://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=&products_id=450

 Arduino Digital Temperature & Humidity sensor_MED.jpg

Analóg páratartalom szenzor

Hozzá az Arduino Library: http://code.google.com/p/arduino-humidity-sensor-library/

HUMIDITY SENSOR HIH4030

4-5.8V

arduino példa kód serial motorral: http://itp.nyu.edu/physcomp/sensors/Reports/ArduinoCode

HIH_img.jpg

Nyomásérzékelő 

MPX4115A

példa: http://www.oz9aec.net/index.php/arduino/343-mpx4115a-pressure-sensor-with-arduino

MPX4115A.jpg

Barometrikus nyomás érzékelő

BMP085 Breakout

példa: http://www.sparkfun.com/tutorials/253

példa: http://garagelab.com/profiles/blogs/tutorial-how-to-use-a-barometric-pressure-sensor-with-arduino

09694-01_i_ma.jpg

Szólj hozzá!

Címkék: szenzorok

2012.11.12.
20:23

Írta: harsanyireka

Tinkerkit 2 tengelyes giroszkóp

A digitális giroszkóp egy 3d-s gyorsulásérzékelő chip. A Föld mágneses pólusait (Észak, Dél) érzékeli és abból számolja az elmozdulást. Ebben a példában a dölés szöget és az mozdulat sebességét tudjuk kiolvasni serial monitoron.

A tinkerkit library-t is telepíteni kel hozzá, innen:
http://tinkerkit.com/en/Tutorials/Home

 

Hivatkozások:

TKGyro gyro(I0,I1,TK_4X);gyro.getXAxis();
//x tengely értéke 0-1023
gyro.getYAxis();
//y tengely értéke 0-1023
gyro.getXAxisRate();
//x tengely fizikai helyzete: -6000°/s-tól 6000°/s-ig
gyro.getYAxisRate();
//y tengely fizikai helyzete: -6000°/s-tól 6000°/s-ig

 

TinkerKit Gyroscope 2 Axis sensitivity 1X

Bekötése:

x tengely A0

y tengely A1

+ pinek 5V-ba mindkettő

- pinek Gnd-be mindkettő

gyro.jpg

 

Arduino kód a hivatalos Manual-ból:

/* TinkerKit! Gyroscope [T000060-64]
 *
 * This sketch shows how to read this 2-axis gyroscope, 
 * turning in a given angular velocity and then converting it 
 * in the simplest way in an angular position (/inclination).
 *
 * Connect: the X-axis to the Analog Input Pin 0 (I0) 
 *          the Y-axis to the Analog Input Pin 1 (I1)
 * Optional: connect a servo to Analog Output Pin 9 (O2)
 *
 * created by Federico Vanzati / f.vanzati@arduino.cc
 * in September 2011
 *
 * inspired from www.arduino.cc/playground/Main/Gyro 
 * by eric barch / ericbarch.com
 */


#include <Servo.h> 

// Pin used in this example
#define SERVO 9
#define X_GYRO 0
#define Y_GYRO 1

#define ADCresolution 4.89f  // = 5000mV/1023counts: Arduino analog pins resolution expressed in mV/count
#define Sensitivity 0.67f  // [mV/dps] sensitivity of the sensor, took from datasheet (4x output mode)
// Conversion coefficient, we do here because is a constant! so we'll not do the calculation every loop
#define K ADCresolution/Sensitivity  // the constant!
#define nrSamples 6  // Number of samples that we take for each measure

Servo myservo;  // create servo object to control a servo 
// a maximum of eight servo objects can be created 

// Timing variables
unsigned long  time, sampleTime = 12; 
unsigned long printTime = 0, serialRefresh_time = 500; 
float deltaT = (float)sampleTime*nrSamples/1000;

//Gyroscope variables  
int roll_zeroVoltage, pitch_zeroVoltage;    
int roll_rawADC[nrSamples], pitch_rawADC[nrSamples];  // store 3 values...just to avverage
float roll_rate, pitch_rate;  //
float roll_angle = 0, pitch_angle = 0;
int c=0;  // just a counter to count the samples

int pos;    // variable to store the servo position

void setup() 
{ 
  delay(1000); 
  myservo.attach(SERVO);  // attaches the servo on pin 9 to the servo object 
  myservo.write(pos);

  Serial.begin(57600);
  Serial.print("TinkerKit! Gyroscope [T000062] Test Example\n\n");

  int correctionY=0, correctionX=0;

  for (int i=0; i<50; i++)
  {
    correctionY += analogRead(Y_GYRO);
    correctionX += analogRead(X_GYRO);
    delay(20);
  }
  roll_zeroVoltage = correctionY/50;
  pitch_zeroVoltage = correctionX/50;
  Serial.print(roll_zeroVoltage);
  Serial.print("    ");
  Serial.println(pitch_zeroVoltage);

  time = millis();
} 


void loop() 
{ 
  // Every 40ms take a sample from gyro
  if(millis() - time > sampleTime)
  {
    time = millis();   
    roll_rawADC[c] = analogRead(Y_GYRO);
    pitch_rawADC[c] = analogRead(X_GYRO);
    c++;
  }
  if(c==nrSamples) // Well, we have 3 samples
  {
    // Transform the raw data into an angular velocity
    roll_rate = (filterGyro(roll_rawADC) - roll_zeroVoltage) * K;
    pitch_rate = (filterGyro(pitch_rawADC) - pitch_zeroVoltage)*K;

    // Integrate the angular veloity to obtain angular position (or inclination)
    // Using the trapeziod method for numerical integration
    //                                                                 sampleTime*nrSamples
    // The variable that take mind of the integration time is deltaT = -------------------- 
    //                                                                         1000
    //  - we multiply for nrSamples because  
    //  - divide for 1000 because angular velocity is expessed in seconds,
    //    but sampleTime is expressed in milliseconds
    roll_angle += roll_rate*deltaT/2;
    pitch_angle += pitch_rate*deltaT/2;

    //Keep our angle between 0-359 degrees
    if (roll_angle < 0)
      roll_angle += 360;
    else if (roll_angle > 359)
      roll_angle -= 360;

    if (pitch_angle < 0)
      pitch_angle += 360;
    else if (pitch_angle > 359)
      pitch_angle -= 360;

    // Now we control the servo: home position is setted in the center at 90 degrees
    if(roll_angle >= 0 && roll_angle <= 90) // counterclockwise rotation of the gyro...
      pos = 90 + (int)roll_angle;           // ...produces rotation from 90 to 180 deg on servo                     
    if(roll_angle >= 270)                   // clockwike rotation of the gyro...
      pos = (int)roll_angle - 270;          // ...produces rotation from 90 to 0 deg on servo

    myservo.write(pos);  // send the position to servo

    if(millis() - printTime > serialRefresh_time)
    {
      printTime = millis();
      Serial.print("Roll speed: "); Serial.print((int)roll_rate);
      Serial.print("\t Angle: "); Serial.print((int)roll_angle);
      Serial.print("\t Pitch speed: ");Serial.print((int)pitch_rate);
      Serial.print("\t Angle: ");Serial.println((int)pitch_angle);
      Serial.print("Servo: "); Serial.println(pos);
    }
    c=0;  // reset the counter
  }
}

int filterGyro(int buffer[])
{
  int mean=0;
  for(byte i=0; i<nrSamples; i++)
    mean += buffer[i];
  mean /= nrSamples;
  return mean;
}
 

Egy példa, grafikus interfész processingben, ami a giró adatait mutatja: http://scuola.arduino.cc/en/content/realizziamo-uninterfaccia-grafica-modulo-giroscopio-tinkerkit 

 

forrás

http://www.tinkerkit.com/bp/reference/http://tinkerkit.com/en/Tutorials/Homehttp://sensorwiki.org/doku.php/sensors/gyroscope

cc-by-sa3s.jpg

Szólj hozzá!

Címkék: szenzorok

2012.11.11.
19:40

Írta: harsanyireka

Sharp IR 2Y0A21 távolságérzékelő

10-80 cm között mér. Feszültség ellátás 4.5-5.5 V és áramfogyasztás 30mA.

Bekötése:

Datasheet: http://www.sharpsma.com/webfm_send/1489

balról jobbra: analóg 0, földelés, 5V

sharp_1.jpg

Adat kiolvasása Serial Monitorral:

int sensorpin = 0;
// az analóg 0-ba van kötve a sharp szenzor
int val = 0;
// változó ami a szenzor értékeit tárolja
// inicializáljuk 0-ként

void setup(){
Serial.begin(9600);
// serial monitor elindítása
}

void loop(){
val = analogRead(sensorpin);
// érték kiolvasása a szenzorból
Serial.println(val);
// érték kiírása serial monitorral
delay(500);
// fél mp vár mielőtt újra kiolvassa az értéket
}

Screen Shot 2012-11-11 at 7.29.30 PM.png

Szólj hozzá!

Címkék: szenzorok

2012.11.08.
09:52

Írta: harsanyireka

Hivatkozások 10.: Változók, Adat típusok

void

A függvények deklarálásához használt kulcsszó. Saját függvényt írhatunk vele, amit csak meghívunk egy másik helyen a kódban.

http://arduino.cc/en/Reference/Void

 

boolean

Két értéke lehet: igaz vagy hamis. Minden boolean változó egy byte-ot foglal el a memóriában.

http://arduino.cc/en/Reference/BooleanVariables

 

char

Ez az adat típus egy byte memóriát foglal el, karakter érték tárolására alkalmas, tehát 1 karakter értékét tárolja. A betűket szimmpla idézőjelbe, a karakter stringeket dupla idézőjelbe írjuk: 'A' "ABC" Típusátalakításhoz használatos kulcsszó. Előjeles adat típus, ez azt jelenti hogy -128 és 127 közötti étékeket tárolhat.

A karaktereket számként tároljuk, a betűk decimális értéke visszakereshető az ASCII karakter szabványban: http://arduino.cc/en/Reference/ASCIIchart De pl. Serial.println parancs segítségével kiirattathatjuk a többi számrendsezrben is serail monitor segítségével, így megnézhetjük azok értékeit is.

char myChar = 'A';
char myChar = 65; //a két sor ugyanaz jelenti

http://arduino.cc/en/Reference/Char 

  

unsigned char

Ugyanaz mint a byte. 0 és 255 közötti számokat lehet belekódolni. A következetesség kedvéért használd a byte-ot.

unsigned char myChar = 240;

http://arduino.cc/en/Reference/UnsignedChar

  

byte

8 biten (= 1 byte) tárol nem előjeles számokat, 0 és 255 között. 

byte b = B10010;  // "B" bináris formázó (B10010 = 18 tizes számrendszerben) 

http://arduino.cc/en/Reference/Byte

  

int

Elsődleges adat típus számok tárolásához. Az Arduino Uno-n az integer 16 bit értéket tárol, -32 768 és 32 767 között. Az Arduino Due 32 biten működik, így 2 147 483 648 és 2 147 483 647 közötti értéket tárol. Aritmetikai operátorokkal a hagyományos módon működnek. Bitenkénti operátorokat is használhatunk velük, csak ilyenkor figyelni kell mert azok kettes számredszerben tolják alrétt a bitértékeket.

szintaxis:

int var = val; // integer változóneve = értékmegadás

példa:

int a = 5;        // binary: 0000000000000101
int b = a << 14; // binary: 0100000000000000

http://arduino.cc/en/Reference/Int 

 

unsigned int

Előjel nélküli egész számok tárolására alkalmas. Mivel ugyanúgy 2 byte-on működik mint az integer, nagyobb pozitív értéket tud tárolni: 0 és 65 535 között az ATMega alapú arduinoknál. Due típuson 4 byte-tel működik így 0 és 4 294 967 295 között használható.

szintaxis:

unsigned int var = val; // előjeles integer változóneve = értékmegadás

 Ha a változó eléri az egyik szélső értéket, akkor átugrik a másik végére és ott folytatódik a számítás, tehát:

unsigned int x
   x = 0;
   x = x - 1;       // x most65535 - negatív irányba ugrott érték
   x = x + 1;       // x most 0 - pozitív irányba ugrott érték

http://arduino.cc/en/Reference/UnsignedInt

  

word

Ugyan az mint az unsigned int, tehát 16 biten tárol előjel nélkül számokat, 0-tól 65 535-ig.

példa:

 word w = 10000; 

http://arduino.cc/en/Reference/Word 

 

long

32 biten tárol számértéket -2 147 483 648 és 2 147 483 647 között.

példa: 

long speedOfLight = 186000L;   // 'L' kifejezést az Integer Állandók-nál nézd meg

szintaxis: 

long var = val;

http://arduino.cc/en/Reference/Long 

 

unsigned long

Ugyanúgy 32 biten tárol számértéket mint a long, de nincs előjele, így 0-tól 4 294 967 295 (2^32 - 1) -ig terjedhet az értéke.

szintaxis:

unsigned long var = val;

http://arduino.cc/en/Reference/UnsignedLong

  

short

16 bites adat típus, ATMega és ARM alapú Arduinokhoz. Tárolt érték -32 768 és 32 767 között.

szintaxis:

short var = val;

http://arduino.cc/en/Reference/Short

  

float

Tizedes ponttal rendelkező számok. Lebegőpontos érték tárolására alkalmasak, 32 biten. (lásd. Állandók) Maximális értéke 3.4028235E+38 és minimális értéke -3.4028235E+38.

A float kifejezésben csak 6-7 tizedes számjegy van. Ez az összes számjegyre értendő, nem a tizedespont jobb oldalára.

A lebegőpontos számok nem precízek, furcsa eredményt adhatnak összehasonlításnál. Pl. 6.0 / 3.0 nem egyenlő 2.0-val, mert a számok abszolút értékének különbsége kevesebb lehet néhány kicsi számnál.

szintaxis: 

float var = val;

http://arduino.cc/en/Reference/Float

 

double

Lebegőpontos számérték. Uno-n és ATMega alpú boardokon 4 byte-os, Due-n 8byte-os.

http://arduino.cc/en/Reference/Double

 

string - char array

Kétféleképpen ábrázolható, egyrészt használhatjuk mint a 0019 verzióba beépített String adat típust, másrészt létrehozhatunk stringet egy karakterlánc tömbbel. inf.: http://hu.wikipedia.org/wiki/String

Ezeket a következő példák szerint lehet deklarálni, mindegyik érvényes:

  char Str1[15];
  char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
  char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
  char Str4[ ] = "arduino";
  char Str5[8] = "arduino";
  char Str6[15] = "arduino";

http://arduino.cc/en/Reference/String

 A karaktertömbök utolsó eleme a 0 (nulla), innen ismeri meg a fordítóprogram a sting végét.

  

String - object

Szöveg alapú stringeket manipulálhatunk a következő függvények által:

http://arduino.cc/en/Reference/StringObject

 

array

Tömb. Adathalmazt tárolhatunk memóriában és műveleteket végezhetünk el rajtuk. A tömbök elemeire mindig az indexelés operátorával ([]) hivatkozunk (pl. x[3]).

szintaxisa:

típus tömbnév[elemszam];

Tömb deklarálása a következő módokon történhet:

  int myInts[6];
  int myPins[] = {2, 4, 8, 3, 6};
  int mySensVals[6] = {2, 4, -8, 3, 2};
  char message[6] = "hello";

 Érték hozzárendelése a tömb egy eleméhez:

mySensVals[0] = 10;

Érték kiolvasása a tömb egy eleméből:

x = mySensVals[4];

http://arduino.cc/en/Reference/Array 

cc-by-sa3s.jpg

Szólj hozzá!

Címkék: hivatkozások

2012.10.24.
20:28

Írta: harsanyireka

Motorok

DC motor= egyenáramú motor, villanymotor
A villanymotor egy motorként működő villamos forgógép, amely az elektromágneses indukció elvén alapuló eszköz, az elektromos áram energiáját mechanikus energiává, forgó mozgássá alakítja.
Ha egy mágneses térben elhelyezett tekercsbe elektromos áramot vezetnek a benne kialakuló mágneses mező
kölcsönhatásba lép az állandó mágnesek közötti mágneses mezővel és elfordítja a tekercset (a motor forgórészét).

 

Stepper motor, léptetőmotor
A léptetőmotorok lényeges tulajdonsága, hogy egy körülforduláshoz hány lépés szükséges. Ezt megadhatják
fokban, ekkor az egy lépésre eső szögelfordulást adják meg. Illetve megadhatják az egy körülforduláshoz szükséges lépésszámot. Természetesen fontos paraméter a motor terhelhetősége, teljesítménye és nyomatéka is. A léptetőmotort digitális jellel kell vezérelni. Ennek a motortípusnak hatalmas előnye, hogy a jel hatására adott, előre meghatározott pozícióba fordul. Elsősorban olyan helyeken alkalmazzák e motorokat, ahol amúgy is digitális jelekkel dolgoznak, illetve ahol lényeges a pontos pozícióba állás. Tehát megtalálhatók a számítógép perifériákban (nyomtató, floppy, winchester, scanner, CD-rom), az ipari termelés sok területén, valamint a modellezésben.

Servo motor, szervó motor
Két irányba mozgatható, vezérléssel működik, programozni kell. A szervók impulzusszélesség vezérelt motorok. Ez gyakorlatilag azt jelenti, hogy a motornak egy impulzus szélességgel lehet megadni, hogy milyen pozícióba álljon. A motor vezérlőjének első része egy impulzusszélesség ->feszültség konverter. Ez megméri a kapott impulzus szélességét, majd annak alapján egy adott feszültséget generál. A vezérlőbe be van égetve a minimum impulzus szélesség (minIW) és a maximum impulzus szélesség (maxIW). A generált feszültség maximális értéke közel megegyezik a bejövő tápfeszültséggel. Ezt a maxIW elérésekor adja ki magából. A motor nem ezzel a feszültséggel lesz meghajtva. Ez csak egy referencia feszültség. A szervó tengelyén egy potmétert helyeztek el. Ahogy fordul a tengely, úgy változik ellenállása. A poti egyik vége V+ a másik pedig GND-re van kötve. A középső lábán pedig egy referencia feszültséget kapunk. Na most már van 2 referencia feszültségünk. Az egyik referencia feszültésg a motor aktuális pozícióját jelzi, a másik pedig a jövőbeni pozícióját. A cél, hogy a két referencia feszültség egyenlő nagyságú legyen, tehát a motor elérje a kívánt pozíciót. Ehhez ez a két feszültség rá van engedve egy harmadik egységre, ami összehasonlítja a két feszültséget. Ez a harmadik egység képes a feszültségkülönbségek alapján meghatározni, hogy a motort jobbra vagy balra kell forgatni ahhoz, hogy a két referenciafeszültség egyforma legyen. A referencia összehasonlító közvetlenül vezérel egy H-hidat ami a motornak szükséges áramot adja.

   

Mi a H-hid?
A H-hid egy olyan áramkör, ami lehetővé teszi hogy a feszültséget minkét irányba alkalmazhassuk, robottechnikában gyakran alkalmazzák DC motorokhoz hogy előre és hátrafelé is lehessen forgatni. Integrált áramkör formájában is elérhetőek, de külön alkatrészekből is összeszerelhetőek.

hhid1motorral_01.jpg

Mi az a PWM?
A PWM (pulse-width moderation) impulzus szélesség modulációs eljárás igen elterjedt a vezérléstechnikában. Lényege, hogy mikrovezérlő vagy más elektronikai eszköz segítségével modulált jelet hozunk létre és a tekercset ezzel a jellel gerjesztjük, nem pedig egyenárammal. A PWM jellemzői az alapfrekvencia és a kitöltési tényező. Az alapfrekvencia meghatározza, hogy a modulált jel hányszor változik másodpercenként. Bevett szokás, hogy az alapfrekvenciát 20KHz felettire választják, mert ez a frekvencia az emberi fül számára már nem hallható. A kitöltési tényező azt határozza meg, hogy egy perióduson belül a négyszögjel a teljes periódusidő hány százalékában vesz fel logikai 1-es értéket.

LINKEK:

-villanymotor http://hu.wikipedia.org/wiki/Villanymotor

-elektromágnesesség http://hu.wikipedia.org/wiki/Elektrom%C3%A1gness%C3%A9g

-léptető motor http://qtp.hu/elektro/leptetomotor_mukodese.php
http://en.wikipedia.org/wiki/Stepper_motor

-léptető motor és PWM: http://www.hun.cncdrive.com/tudasbazis/stp.htm

-szervó motor, servo motor: http://www.seattlerobotics.org/guide/servos.html
http://en.wikipedia.org/wiki/Servo_motor#RC_servos

-szervó motor vezérlése http://myprojects.hu/pic/szervo-motorok-vezerlese.html

-H-hid http://www.hobbielektronika.hu/kapcsolasok/h-hid_avagy_egyszeru_motorvezerles.html?pg=1
http://en.wikipedia.org/wiki/H-bridge

Szólj hozzá!

Címkék: elektronika motorok

süti beállítások módosítása