Pages - Menu

Translate

martes, 19 de octubre de 2021

Construye tu generador de señal 4-20mA con ATtiny85

 

Al construir esta generador con ATtiny85, nos permite generar una señal de 4-20 mA activa para poder usar en equipos y/o simular una señal no requiere tener la fuente de 24v en serie.
 
Como funciona este generador, desde el Arduino uno se genera una señal PWM de 0-255 y con un filtro RC "680R y 100uF" se convierte a una señal analogica ya que el ATtiny85 no tiene respectivamente una salida analogica, eso entra al operacional es cual se vuelve a amplificar en una configuracion de retroalimentacion con una resistencia de R7:250R o en su defecto usar un R8:1k de presicion pero ajustar a 250R si no encuentran una resistencia fija.
 
Para mayor control y presicion se utilizo un encoder ya que no lo permite hacer el cambio incluye un pulsador el cual permite habilitar un menu en su programacion.
 
En simple programacion seria la señal PWM 0-255 su equivalente 0-20mA:
 
51 PWM         -    4mA
102PWM        -    8mA
153PWM        -    12mA
204PWM        -    16mA
255PWM        -    20mA
 
Schematic:==================================================================

 

==========================================================================

Construye tu generador de señal 4-20mA con ATtiny85

Programador as ICSP: https://youtu.be/tI8fc1HeL5U

PDF: Download

STL: Download

.hex: Download

Gerber: Download

Lista de componentes:

R1: 680R

R2-R6: 10k

R7: 250R o R8: precicion 1k "calibrar a 250R"

R9: 4k7

C1: 100uF/16v

C2-C3: 104

C5: 100uF/16v

C4: 100uF/35v

D1: SS34 o 1N4007

LED1: 3mm

IC1: ATtiny85

U2: 7805

U3: LM358

Display1: Oled 128x32 I2C

SW1: Encoder


 

 

Construye tu Shield RS-485 con Arduino UNO, Leonardo y Mega

 


Realizando ingenieria a la inversa se replica este conversor TTL-RS485 que es bidireccional y la habilitacion se realiza por hardware cuando se transmite o recibe datos.

Se utiliza un 74HC14 y componentes pasivos, y el mas485 el que se encarga de este protocolo ya que nos permite manejar hasta un maximo de 1.2km de transmision lo cual se aconseja que al incio y al final en el ultimo equipo se implemente una resistencia de 120R por ello esta shield lo tiene para usar con jumper.

Dependiendo si se usara en un nodo o incio como fin de linea.

 

Schematic: =================================================================

==========================================================================

Construye tu shield RS-485 

Arduino UNO 

Leonardo 

Mega 

PDF: Download

Gerber: Download

Lista de componentes:

R1-R2: 4k7

R3-R4: 2k4

R5: 56k

R6: 120R

R7-R8: 4k7

D1: 1N4148

C1-C2: 104

LED1-LED2: 3mm

U1: 74HC14

U3: max485

Codigo de Ejemplo:

==========================================================================

int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
char DATO;

void setup() {
  Serial.begin(9600);
  Serial.println("Bienvenido");
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  delay(100);
}

void loop() {
  if (Serial.available() > 0) {
    DATO = Serial.read();
    if (DATO == 'A') {
      digitalWrite(led1, HIGH);
      Serial.println("led1 on");
    }
    if (DATO == 'B') {
      digitalWrite(led2, HIGH);
      Serial.println("led2 on");
    }
    if (DATO == 'C') {
      digitalWrite(led3, HIGH);
      Serial.println("led3 on");
    }
    if (DATO == 'D') {
      digitalWrite(led4, HIGH);
      Serial.println("led4 on");
    }
    if (DATO == 'a') {
      digitalWrite(led1, LOW);
      Serial.println("led1 off");
    }
    if (DATO == 'b') {
      digitalWrite(led2, LOW);
      Serial.println("led2 off");
    }
    if (DATO == 'c') {
      digitalWrite(led3, LOW);
      Serial.println("led3 off");
    }
    if (DATO == 'd') {
      digitalWrite(led4, LOW);
      Serial.println("led4 off");
    }
  }
  delay(100);
}

Construye tu shield RS-232 para Arduino UNO, Leonardo y Mega

 


Ahora con esta Shield podemos comunicarnos directamente con Rx y Tx del Arduino UNO, leonardo o MEGA 2560 salida RS232.

Utiliza un chip max232 el cual es un conversor TTL-RS232 bidireccional.

 

Schematic:==================================================================

==========================================================================

Construye tu shield RS-232 

Arduino UNO 

Leonardo 

Mega 

PDF: Download

Gerber: Download

Lista de componentes:

C1-C5: 10uF/16V

U2: max232

U1: DB9 Hembra

P1: Bornera 3P

Codigo de Ejemplo:

==========================================================================

int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
char DATO;

void setup() {
  Serial.begin(9600);
  Serial.println("Bienvenido");
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  delay(100);
}

void loop() {
  if (Serial.available() > 0) {
    DATO = Serial.read();
    if (DATO == 'A') {
      digitalWrite(led1, HIGH);
      Serial.println("led1 on");
    }
    if (DATO == 'B') {
      digitalWrite(led2, HIGH);
      Serial.println("led2 on");
    }
    if (DATO == 'C') {
      digitalWrite(led3, HIGH);
      Serial.println("led3 on");
    }
    if (DATO == 'D') {
      digitalWrite(led4, HIGH);
      Serial.println("led4 on");
    }
    if (DATO == 'a') {
      digitalWrite(led1, LOW);
      Serial.println("led1 off");
    }
    if (DATO == 'b') {
      digitalWrite(led2, LOW);
      Serial.println("led2 off");
    }
    if (DATO == 'c') {
      digitalWrite(led3, LOW);
      Serial.println("led3 off");
    }
    if (DATO == 'd') {
      digitalWrite(led4, LOW);
      Serial.println("led4 off");
    }
  }
  delay(100);
}

Funciona o explota #06 Modulo RS485-TTL para Arduino, ESP32, raspberry

 


Con este modulo nos podemos comunicar TTL-RS485 bidirecionalmente, ya que la habilitacion de transmicion y recepcion lo realiza por hardware.

Una de las ventajas de este protocolo RS485 que podemos extender hasta 1.2km de transmicion el cual se recomienda colocar una resistencia de 120R al inicio y al final de la linea o ultimo equipo, no es necesario que los modulos o equipos en los nodos intermedios tengan esa resistencia.

==========================================================================

Modulo RS485-TTL 

para Arduino 

ESP32 

raspberry

Archivo e .ino: Download

Codigo de ejemplo:

==========================================================================

int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
char DATO;

void setup() {
  Serial.begin(9600);
  Serial.println("Bienvenido");
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  delay(100);
}

void loop() {
  if (Serial.available() > 0) {
    DATO = Serial.read();
    if (DATO == 'A') {
      digitalWrite(led1, HIGH);
      Serial.println("led1 on");
    }
    if (DATO == 'B') {
      digitalWrite(led2, HIGH);
      Serial.println("led2 on");
    }
    if (DATO == 'C') {
      digitalWrite(led3, HIGH);
      Serial.println("led3 on");
    }
    if (DATO == 'D') {
      digitalWrite(led4, HIGH);
      Serial.println("led4 on");
    }
    if (DATO == 'a') {
      digitalWrite(led1, LOW);
      Serial.println("led1 off");
    }
    if (DATO == 'b') {
      digitalWrite(led2, LOW);
      Serial.println("led2 off");
    }
    if (DATO == 'c') {
      digitalWrite(led3, LOW);
      Serial.println("led3 off");
    }
    if (DATO == 'd') {
      digitalWrite(led4, LOW);
      Serial.println("led4 off");
    }
  }
  delay(100);
}

Funciona o explota #05 Modulo RS232-TTL para Arduino, ESP32, raspberry

 

 

Modulo bidireccional de TTL-RS232 me permite comunicar equipos con ese protocolo ya sea con PLC o con equipos que manejen ese protocolo ya que es un standar que se mantuvo por mucho tiempo.

El modulo utiliza un chip MAX232 que es el que se encarga de convertir la señal.

==========================================================================

Modulo RS232-TTL 

para Arduino 

ESP32 

raspberry 

Archivo y .ino: Download

Codigo de ejemplo:

========================================================================== 

int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
char DATO;

void setup() {
  Serial.begin(9600);
  Serial.println("Bienvenido");
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  delay(100);
}

void loop() {
  if (Serial.available() > 0) {
    DATO = Serial.read();
    if (DATO == 'A') {
      digitalWrite(led1, HIGH);
      Serial.println("led1 on");
    }
    if (DATO == 'B') {
      digitalWrite(led2, HIGH);
      Serial.println("led2 on");
    }
    if (DATO == 'C') {
      digitalWrite(led3, HIGH);
      Serial.println("led3 on");
    }
    if (DATO == 'D') {
      digitalWrite(led4, HIGH);
      Serial.println("led4 on");
    }
    if (DATO == 'a') {
      digitalWrite(led1, LOW);
      Serial.println("led1 off");
    }
    if (DATO == 'b') {
      digitalWrite(led2, LOW);
      Serial.println("led2 off");
    }
    if (DATO == 'c') {
      digitalWrite(led3, LOW);
      Serial.println("led3 off");
    }
    if (DATO == 'd') {
      digitalWrite(led4, LOW);
      Serial.println("led4 off");
    }
  }
  delay(100);
}

Micro PLC con STM32 #01 "FX2N-20MR", Puesta en marcha y primer programa

 

 Primer programa y puesta en marcha lo primero que se debe realizar es es configuracion del puerto de comunicacion y la velocidad de transferencia, seleccionar la familia del PLC como el modelo, recordar siempre primero compilar el programa para poder cargar al PLC o se generara un error y no les dejara cargar.

Siempre al compilar nos podra marcar si existe errores o no para corregir antes de subir tambien podemos manejar las etiquetas para poder marcar las entradas y/o salidas, es recontra util ya que cuando se hace conplejo un programa y muy extenso nos facilita identificar donde y que sensor el que nos presente algun problema.

===========================================================================

Micro PLC con STM32 

"FX2N-20MR" 

Puesta en marcha y primer programa 

Ejemplo y archivo: Download

Popular Posts