Академический Документы
Профессиональный Документы
Культура Документы
Autor:
Carlos Alan González Cortéz
Primera edición.
05/12/18
Monterrey, Nuevo León, México.
DEMOSTRACION
Temario
Entradas digitales de baja velocidad……10
Entradas de AC…39
Entradas analógicas…
Salidas electromecánicas…63
Salidas PWM…81
Salidas analógicas…88
Expansiones I/O…107
Expansion ADC…117
Expansion PWM…120
Expansion RTC…127
Expansion EEPROM…130
Puerto USB…146
Diseño de alimentación…153
1.- Precio
Aunque hacer nuestro propio PLC no es lo más barato del
mundo, existen ocasiones donde podemos ahorrar mucho
dinero, esto se va amplificando en función a la cantidad de
entradas, salidas o periféricos que necesitemos.
3.- Aprendizaje
Dejando a un lado el punto comercial, un PLC es un excelente
proyecto para las personas que se adentran en el diseño en
ingeniería electrónica.
Es por esto que todo sistema de medición debe contar con esta
característica tan importante.
Bien, ya que sabemos que significa este término ¿Qué tiene que
ver con nuestro diseño?
A esto:
Todo LED cuenta con una vida útil, la cual puede variar
seriamente con aspectos como temperatura, humedad, corriente
IF, etc.
El optoaislador HCPL-7510
𝑅2
𝑉𝑜𝑢𝑡 = 𝑉𝑖𝑛 ∗ ( )
𝑅1 + 𝑅2
Salidas de PWM
Salidas analógicas.
Salidas electromecánicas
Por gran parte de la existencia de los PLC, estos han utilizado un
componente presente desde hace mucho tiempo, los
relevadores.
Desventajas
Tamaño: Los relevadores pueden llegar a tomar un área
considerable de la placa, según la cantidad de contactos,
potencia, etc.
Para este caso, debemos usar diodos led, los cuales colocaremos
en paralelo con los relevadores en la conexión del ULN2803A.
Dado que cualquier carga, por más mínima que sea, va a suponer
un rizado como este:
Esto nos puede arruinar el día ya que esas oscilaciones pueden
darnos graves problemas a la hora del funcionamiento.
La corriente consumida.
Pero, en este caso, aun la carga más mínima como un led nos
puede ocasionar un rizado considerable y esto es debido a la
baja capacitancia.
SDA: datos.
CLK: reloj.
-Expansión de RTC.
¿Cuál es la diferencia?
¿Por qué?
¿Qué significa?
Esta es una eeprom que opera mediante el puerto I2C, por lo que
se implementa fácilmente con nuestra expansión.
3.- Efecto RC
O prolific.
Estos son de los integrados más populares hoy en día. Pero existe
un problema.
5.- Disponibilidad.
Memoria EEPROM
Esta es una memoria significativamente más pequeña que la
FLASH. Aparte de que es de menor velocidad.
short duty;
void main(){
TRISA = 1;
TRISC = 0;
PORTA = 0;
ANSEL = 0;
ANSELH = 0;
C1ON_bit = 0;
C2ON_bit = 0;
PWM1_Init(20000);
PWM1_Start();
duty = 0;
while(1){
if(RA0_bit == 1){
delay_ms(100);
duty = duty + 5;
if(RA1_bit == 1){
delay_ms(100);
duty = duty - 5;
duty = 0;
if(duty>255){
duty = 255;
PWM1_Set_Duty(duty);
duty = 0;
if(duty>255){
duty = 255;
PWM.
R2R.
Método DAC mediante PWM
Una de las funciones importantes que podemos obtener
mediante nuestra salida de PWM es un conversor digital a
analógico.
En este caso:
void main(){
TRISA = 1;
TRISC = 0;
PORTA = 0;
ANSEL = 0;
ANSELH = 0;
C1ON_bit = 0;
C2ON_bit = 0;
PWM1_Init(20000);
PWM1_Start();
duty = 0;
while(1){
if(RA0_bit == 1){
delay_ms(100);
duty = duty + 1;
if(RA1_bit == 1){
delay_ms(100);
duty = duty - 1;
duty = 0;
if(duty>255){
duty = 255;
PWM1_Set_Duty(duty);
Siendo:
Caso contrario es por ejemplo SPI o USART. Los cuales si son full
dúplex.
Ambiente alto
Los ambientes altos, son aquellos con altas capacitancias
presentes, estos son principalmente los protoboards, PCB’s de
más de 2 capas y cables de comunicación muy largos.
I2C1_Start();
I2C1_Wr();
Podemos considerar que está instrucción, casi que por regla, será
la instrucción que se escribe después de Start.
I2C1_Rd();
Esta instrucción se utiliza para leer el dato proveniente del
esclavo en caso de establecer la comunicación en modo lectura.
I2C1_Stop();
Esta instrucción, como su nombre lo dice, detiene la
comunicación y se utiliza al último de todas las instrucciones
previas, ya que significa que ya hemos hecho lo necesario en la
comunicación en cuestión.
PCF8574 en I2C
La primera expansión que usaremos es el PCF8574.
La variante T y la variante A.
Es por esto que debemos de revisar siempre la tabla para ver que
direcciones podemos establecer mediante software.
Para este caso, vamos a tener los pines A0, A1 y A2 en GND, por
lo que tendremos la dirección siguiente:
I2C1_Wr(0x71);
var = I2C1_Rd(0u);
I2C1_Stop();
00100101equivale a 37 en decimal.
short entrada1;
short entrada2;
short entrada3;
short entrada4;
short entrada5;
short entrada6;
short entrada7;
short entrada8;
void main(){
TRISB = 0;
PORTB = 0;
ANSEL = 0;
ANSELH = 0;
C1ON_bit = 0;
C2ON_bit = 0;
I2C1_Init(100000);
while(1){
I2C1_Start();
I2C1_Wr(0x71);
var = I2C1_Rd(0u);
I2C1_Stop();
if(entrada1 == 1){
RB0_bit = 1;
else{
RB0_bit = 0;
if(entrada2 == 1){
RB1_bit = 1;
else{
RB1_bit = 0;
if(entrada3 == 1){
RB2_bit = 1;
else{
RB2_bit = 0;
if(entrada4 == 1){
RB3_bit = 1;
else{
RB3_bit = 0;
if(entrada5 == 1){
RB4_bit = 1;
else{
RB4_bit = 0;
if(entrada6 == 1){
RB5_bit = 1;
else{
RB5_bit = 0;
if(entrada7== 1){
RB6_bit = 1;
else{
RB6_bit = 0;
if(entrada8 == 1){
RB7_bit = 1;
else{
RB7_bit = 0;
I2C1_Start();
I2C1_Wr(0x70);
I2C1_Wr(PORTB);
I2C1_Stop();
entrada1 = bit0;
entrada2 = bit1;
entrada3 = bit2;
entrada4 = bit3;
entrada5 = bit4;
entrada6 = bit5;
entrada7 = bit6;
entrada8 = bit7;
entrada1 = 1;
entrada2 = 2;
entrada3 = 4;
entrada4 = 8;
entrada5 = 16;
entrada6 = 32;
entrada7 = 64;
entrada8 = 128;
I2C1_Start();
I2C1_Wr(0x70);
I2C1_Wr(salida);
I2C1_Stop();
Ejemplo
Para este ejemplo, implementaremos lo anterior.
Vamos a usar cada entrada del micro para poder controlar las
salidas del expansor.
void main(){
TRISB = 0;
PORTB = 0;
ANSEL = 0;
ANSELH = 0;
C1ON_bit = 0;
C2ON_bit = 0;
I2C1_Init(100000);
while(1){
salida = PORTB;
I2C1_Start();
I2C1_Wr(0x70);
I2C1_Wr(salida);
I2C1_Stop();