Villalba2006

POST_62_Transmisor

Nov 28th, 2016
4,702
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.04 KB | None | 0 0
  1. /*  TITULO: Comunicación RS-485 simplex entre dos Arduinos con módulos MAX485 - Transmisor_simplex_RS485
  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: [email protected]
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     Programa que transmite el valor de la intensidad de brillo de un LED (de 0 a 254) a través de comunicación
  14.     unidireccional (simplex) RS-485 mediante el módulo MAX485 RS485-TTL, dependiendo de la posición que tenga
  15.     el mando del potenciómetro en cada momento.
  16.    
  17.    
  18.     ESQUEMA DE CONEXION
  19.    
  20.                                       +-----+
  21.          +----[PWR]-------------------| USB |--+
  22.          |                            +-----+  |
  23.          |         GND/RST2  [ ][ ]            |
  24.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  25.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  26.          |                             AREF[ ] |
  27.          |                              GND[ ] |
  28.          | [ ]N/C                    SCK/13[ ] |  
  29.          | [ ]IOREF                 MISO/12[ ] |  
  30.          | [ ]RST                   MOSI/11[ ]~|  
  31.          | [ ]3V3    +---+               10[ ]~|  
  32.          | [ ]5v    -| A |-               9[ ]~|  
  33.          | [ ]GND   -| R |-               8[ ] |  
  34.          | [ ]GND   -| D |-                    |
  35.          | [ ]Vin   -| U |-               7[ ] |  
  36.          |          -| I |-               6[ ]~|  
  37.     P2   | [ ]A0    -| N |-               5[ ]~|  
  38.          | [ ]A1    -| O |-               4[ ] |  
  39.          | [ ]A2     +---+           INT1/3[ ]~|   Pin DI del Módulo MAX485 RS485-TTL
  40.          | [ ]A3                     INT0/2[ ] |  
  41.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  42.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  43.          |            [ ] [ ] [ ]              |
  44.          |  UNO_R3    GND MOSI 5V  ____________/
  45.           \_______________________/
  46.  
  47.   NOTAS:
  48.  
  49.    - Conexiones del Módulo MAX485 RS485-TTL:
  50.      - VCC, DE y RE del Módulo MAX485 RS485-TTL --> +5V de Arduino.
  51.      - GND del Módulo MAX485 RS485-TTL --> GND de Arduino.
  52.      - Pines A y B del Módulo MAX485 RS485-TTL transmisor --> Pines A y B del Módulo MAX485 RS485-TTL receptor
  53.    - Utilizamos un potenciómetro lineal de 10K ohms.
  54.    - Denomínamos a los terminales del potenciómetro como P1, P2 y P3 (donde P2 es el terminal central).    
  55.      - P1 conectado a +5V de Arduino.
  56.      - P3 conectado a GND de Arduino.
  57. */  
  58.  
  59.   // Declaramos la librería para crear otro puerto de comunicación serie para el Módulo MAX485 RS485-TTL
  60.   #include <SoftwareSerial.h>
  61.  
  62.   int potenciometro; // Variable para guardar el valor del potenciómetro (de 100 a 1000)
  63.   int pot = 0; // Pin analógico (A0) para el terminal central del potenciómetro
  64.   byte intensidad; // Variable para guardar el valor de la intensidad del LED (de 0 a 254)
  65.  
  66.   // Declaración del objeto para crear la comunicación serie con el módulo MAX485 RS485-TTL
  67.   SoftwareSerial mySerial(2, 3); // RX, TX
  68.  
  69.   void setup()
  70.   {
  71.     Serial.begin(9600); // Comienzo de la comunicación con el monitor serie
  72.     mySerial.begin(9600); // Comienzo de la comunicación serie con el módulo MAX485 RS485-TTL
  73.   }
  74.    
  75.   void loop()
  76.   {
  77.     potenciometro = analogRead(pot); // Leemos el valor del potenciómetro (de 0 a 1023)
  78.     // Restringimos el valor del potenciómetro a un valor entre 100 y 1000
  79.     potenciometro = constrain(potenciometro, 100, 1000);
  80.      // Mapeamos la lectura del potenciómetro a un valor de intensidad (entre 0 y 254)
  81.     intensidad = map(potenciometro, 100, 1000, 0, 254);    
  82.     Serial.println(intensidad); // Imprimimos el valor de la intensidad a través del monitor serie
  83.     // Enviamos la intensidad correspondiente a través de comunicación serie con el módulo MAX485 RS485-TTL
  84.     mySerial.write(intensidad);
  85.     delay(50);                          
  86.   }
Advertisement
Add Comment
Please, Sign In to add comment