Advertisement
Villalba2006

POST_20

Nov 24th, 2016
1,790
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.27 KB | None | 0 0
  1. /*  TITULO: Control del Micro Servo Tower Pro SG90 9G mediante un potenciómetro.
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
  6.     - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
  7.     - TWITTER: https://twitter.com/MarianoCampoGa
  8.     - CORREO: marianodc83@gmail.com
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     Cargando el siguiente programa en nuestro Arduino, cuando movamos el mando del potenciómetro,
  14.     el servo se moverá proporcionalmente a posiciones entre 0º y 180º.
  15.    
  16.    
  17.     ESQUEMA DE CONEXION
  18.    
  19.                                       +-----+
  20.          +----[PWR]-------------------| USB |--+
  21.          |                            +-----+  |
  22.          |         GND/RST2  [ ][ ]            |
  23.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |  
  24.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |  
  25.          |                             AREF[ ] |
  26.          |                              GND[ ] |
  27.          | [ ]N/C                    SCK/13[ ] |  
  28.          | [ ]IOREF                 MISO/12[ ] |  
  29.          | [ ]RST                   MOSI/11[ ]~|  
  30.          | [ ]3V3    +---+               10[ ]~|  
  31.          | [ ]5v    -| A |-               9[ ]~|   Cable color "Naranja" del Servo
  32.          | [ ]GND   -| R |-               8[ ] |  
  33.          | [ ]GND   -| D |-                    |
  34.          | [ ]Vin   -| U |-               7[ ] |  
  35.          |          -| I |-               6[ ]~|  
  36.     P2   | [ ]A0    -| N |-               5[ ]~|  
  37.          | [ ]A1    -| O |-               4[ ] |    
  38.          | [ ]A2     +---+           INT1/3[ ]~|    
  39.          | [ ]A3                     INT0/2[ ] |  
  40.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  41.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  42.          |            [ ] [ ] [ ]              |
  43.          |  UNO_R3    GND MOSI 5V  ____________/
  44.           \_______________________/
  45.  
  46.   NOTAS:
  47.    - Conexiones del Micro Servo Tower Pro SG90 9G
  48.      - Cable color "Café" del Servo --> GND
  49.      - Cable color "Rojo" del Servo --> +5V
  50.    - Utilizamos un potenciómetro lineal de 10K ohms.
  51.    - Denomínamos a los terminales del potenciómetro como P1, P2 y P3 (donde P2 es el terminal central).    
  52.      - P1 conectado a VCC.
  53.      - P3 conectado a GND.      
  54. */
  55.  
  56.   // Incluir la librería Servo
  57.   #include <Servo.h>                    
  58.   Servo servo1;    
  59.  
  60.   int pinServo = 9;    // Pin digital con PWM para el Servo
  61.   int pulsoMin = 650;  // Pulso en us para girar un ángulo de 0º
  62.   int pulsoMax = 2550; // Pulso en us para girar un ángulo de 180º
  63.  
  64.   int angulo = 0; // Variable para guardar el ángulo del servo
  65.   int pot = 0; // Pin analógico donde va conectado el terminal central del potenciómetro.
  66.  
  67.   void setup()
  68.   {
  69.     // Señal del Servo1 conectado al pin digital 9 (PWM)--> pinServo
  70.     // Calibración del servo para suavizar movimientos -->(pulsoMin, pulsoMax)
  71.     servo1.attach(pinServo, pulsoMin, pulsoMax);
  72.   }
  73.  
  74.   void loop()
  75.   {
  76.     // Asignamos a la variable angulo, la proporción del valor leído en A0 (0 - 1024), en relación
  77.     // a un valor comprendido entre 0° y 180°.
  78.     angulo  = map(analogRead(pot), 0, 1024, 0, 180);
  79.     servo1.write(angulo);
  80.     delay(10);
  81.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement