Omar Alberto

SIMULACIÓN DE ARDUINO PARTE 1 

PRÁCTICA 1 

PARA ENCENDER UN LED

 









 Código:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}


Comentario:
 Este es el cominzo de la practicas con arduino donde cominza la aventura de la programacion con señales digitales y analogicas, con esta primera práctica que es sencilla vimos como se hace el codigo para que encienda un led

CIRCUITO PARA ENCENDER UN LED
link PRACTICA 1 https://circuits.io/circuits/2611581-practica-1


PRÁCTICA 2

CIRCUITO PARA ENCENDER TRES LED DE FORMA CONSECUTIVA




 Código:
int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led1, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led1, LOW);    // turn the LED off by making the voltage LOW
  delay(50);               // wait for a second
 
  digitalWrite(led2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led2, LOW);    // turn the LED off by making the voltage LOW
  delay(50);               // wait for a second
 
  digitalWrite(led3, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led3, LOW);    // turn the LED off by making the voltage LOW
  delay(50);               // wait for a second
 
  digitalWrite(led4, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led4, LOW);    // turn the LED off by making the voltage LOW
  delay(50);               // wait for a second
}


Comentario:
Con esta practica aprendimos como encender tre led de forma consecutiva, donde se modifico un poco el código donde solo agregamos variable para identificar los leds.


CIRCUITO PARA ENCENDER TRES LED DE FORMA CONSECUTIVA
link PRACTICA 2 https://circuits.io/circuits/2611603-practica-2



PRÁCTICA 3 

CIRCUITO PARA ENCENDER TRES LED DE FORMA CONSECUTIVA DE FORMA INVERSA



 Código:

int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led1, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led1, LOW);    // turn the LED off by making the voltage LOW
  delay(50);               // wait for a second
 
  digitalWrite(led2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led2, LOW);    // turn the LED off by making the voltage LOW
  delay(50);               // wait for a second
 
  digitalWrite(led3, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led3, LOW);    // turn the LED off by making the voltage LOW
  delay(50);               // wait for a second
 
  digitalWrite(led4, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led4, LOW);    // turn the LED off by making the voltage LOW
  delay(50);               // wait for a second
}


Comentario: Con esta practica aprendimos a encender tres led como en la práctica 2 pero en este caso de forma inversa, es decir al revés, con esto afinando la forma de hacer el código, conociendo las funciones del software arduino para hacer determinados trabajos.



CIRCUITO PARA ENCENDER TRES LED DE FORMA CONSECUTIVA
DE FORMA INVERSA
LINK PRACTICA 3 https://circuits.io/circuits/2611642-practica-3





PRÁCTICA 4 


CIRCUITO PARA HACER UN SEMÁFORO









Código:

int ledv = 13;
int leda = 12;
int ledr = 11;
int ledv2 = 10;
int leda2 = 9;
int ledr2 = 8;


// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(ledv, OUTPUT);
  pinMode(leda, OUTPUT);
  pinMode(ledr, OUTPUT);
  pinMode(ledv2, OUTPUT);
  pinMode(leda2, OUTPUT);
  pinMode(ledr2, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(ledv, HIGH);   // turn the LED on (HIGH is the voltage level)    
  digitalWrite(ledr2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(5000); 
  
  digitalWrite(ledv, LOW);
  delay(1000); 
  
  digitalWrite(ledv, HIGH);
  delay(1000);
  digitalWrite(ledv, LOW);
  delay(1000);
  digitalWrite(ledv, HIGH);
  delay(1000);
  digitalWrite(ledv, LOW);
  delay(1000);
  
  digitalWrite(leda, HIGH);
  delay(2000);
  digitalWrite(leda, LOW);
  delay(1000);
  
  digitalWrite(ledr, HIGH);
  delay(1000);
  digitalWrite(ledr2, LOW);

  digitalWrite(ledv2, HIGH);
  delay(5000);
  
  digitalWrite(ledv2, LOW);
  delay(1000); 
  
  digitalWrite(ledv2, HIGH);
  delay(1000);
  digitalWrite(ledv2, LOW);
  delay(1000);
  digitalWrite(ledv2, HIGH);
  delay(1000);
  digitalWrite(ledv2, LOW);
  delay(1000);
  
  digitalWrite(leda2, HIGH);
  delay(2000);
  digitalWrite(leda2, LOW);
  delay(1000);
  
  digitalWrite(ledr2, HIGH);
  delay(1000);
  digitalWrite(ledr, LOW);  
  
}

Comentario:
Con esta práctica hacemos programación mas avanzada con arduino ya que podemos aplicarla a la vida diaria si hacemos un semáforo simple, Aunque son pequeños pasos pero es por donde llegaremos a la habilidad de hacer programas mas avanzados y complicados en su configuración.

CIRCUITO PARA HACER UN SEMÁFORO
LINK PRACTICA 4: https://circuits.io/circuits/2611701-practica-4

                                                                  TAREA DE CLASE




¿Que es un potenciometro?

Un potenciómetro es una Resistencia Variable. Así de sencillo. El problema, o la diferencia, es la técnica para que esa resistencia pueda variar y como lo hace.

   Los potenciómetros limitan el paso de la corriente eléctrica (Intensidad) provocando una caída de tensión en ellos al igual que en una resistencia,  pero en este caso el valor de la corriente y  la tensión en el potenciómetro las podemos variar solo con cambiar el valor de su resistencia. En una resistencia fija estos valores serían siempre los mismos. Si esto no lo tienes claro es mejor que estudies las magnitudes electricas.







¿Cual es la ecuación para la división de voltaje?
 Resultado de imagen para ecuacion para la división de voltaje






Tarjetas DAQ



 La adquisición de datos (DAQ) es el proceso de medir con una PC un fenómeno eléctrico o físico como voltaje, corriente, temperatura, presión o sonido. Un sistema DAQ consiste de sensores, hardware de medidas DAQ y una PC con software programable. Comparados con los sistemas de medidas tradicionales, los sistemas DAQ basados en PC aprovechan la potencia del procesamiento, la productividad, la visualización y las habilidades de conectividad de las PCs estándares en la industria proporcionando una solución de medidas más potente, flexible y rentable.


Bibliografía:
 http://www.areatecnologia.com/electronica/potenciometro.html
 http://www.ni.com/data-acquisition/what-is/esa






SIMULACIÓN DE ARDUINO PARTE 2

SIMULACIÓN 1: POTENCIÓMETRO







Código:

int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;

void setup() {

  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);

  Serial.begin(9600);
}


void loop() {

  int sensorValue = analogRead(A0);
  float voltage = sensorValue * (5.0 / 1023.0);
  Serial.println(voltage);

  if(voltage <=1){

    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);

  }

    if(voltage > 1 && voltage <=2){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);

  }

    if(voltage > 2 && voltage <=3){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);

  }

    if(voltage > 3 && voltage <=4){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, LOW);

  }

    if(voltage > 4 && voltage <=4.5){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);

  }
   if(voltage > 4.5 && voltage <=5){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    delay(100);
}
}

Comentario:
Con la practica aprendimos el uso del potencio-metro, ya que es un dispositivo que jamas había usado en mi vida, que ahora se como funciona y como lo puedo manipular para que me arroje datos sobre alguna fuerza mecánica que se ejerce en el mismo, con esto puedo cumplir con mas objetivos sobre la programación en arduino.

LINK PRÁCTICA POTENCIÓMETRO: https://circuits.io/circuits/2888048-practica-5-potenciometro





SIMULACIÓN 2: POTENCIÓMETRO CON DISPLAY 




Código:

 int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;
const byte numeros[11] =           
         {B11111100, // 0
    B01100000, // 1
    B11011010, // 2
    B11110010, // 3
    B01100110, // 4
    B10110110, // 5
    B00111110, // 6
           B11100000, // 7
           B11111110, // 8
    B11100110, // 9
    B00000001  // PD
 };

const int pinSegmento[] = {9,4,5,2,3,8,7,6};

void setup() {

  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
  for(int i=0; i < 8; i++){  
         pinMode(pinSegmento[i], OUTPUT);
  }

  Serial.begin(9600);
}


void loop() {
        
      

  int sensorValue = analogRead(A0);
  float voltage = sensorValue * (5.0 / 1023.0);
  Serial.println(voltage);

  if(voltage <=1){

    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
      pintaDigito(0);
          delay(1000);

  }

    if(voltage > 1 && voltage <=2){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    pintaDigito(1);
    delay(1000);

  }

    if(voltage > 2 && voltage <=3){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    pintaDigito(2);
    delay(1000);

  }

    if(voltage > 3 && voltage <=4){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, LOW);
    pintaDigito(3);
    delay(1000);

  }

    if(voltage > 4 && voltage <=4.5){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    pintaDigito(4);
    delay(1000);
  }
   if(voltage > 4.5 && voltage <=5){

    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    delay(100);

    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    delay(100);
    pintaDigito(5);
    delay(1000);

  }

 }
  void pintaDigito(int numero) {
    
         boolean prendido;
         for(int segmento = 0; segmento < 8; segmento++) {
               prendido = bitRead(numeros[numero], segmento);
               digitalWrite( pinSegmento[segmento], prendido);
          }

Comentario:
Con la práctica de la simulación 2 utilizamos un display para que nos indique con números el grado que nosotros designamos dependiendo la fuerza aplicada en le potenciómetro, con lo que ahora aprendimos como hacer la configuración para que nos arroje números con los cuales tenemos mayor  rango de variables de los datos obtenidos.


LINK POTENCIÓMETRO CON DISPLAY: https://circuits.io/circuits/2888523-the-unnamed-circuit/ 


SIMULACIÓN 3: SENSOR DE TEMPERATURA



Código:

int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;


void setup() {

pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);

Serial.begin(9600);
}

void loop() {


int sensorValue = analogRead(A0); 
float voltage = sensorValue * (5 / 150); 
Serial.println(voltage);

if(voltage <=1){

digitalWrite(led1, LOW); 
digitalWrite(led2, LOW); 
digitalWrite(led3, LOW); 
digitalWrite(led4, LOW); 

}

if(voltage > 1 && voltage <=2){

digitalWrite(led1, HIGH); 
digitalWrite(led2, LOW); 
digitalWrite(led3, LOW); 
digitalWrite(led4, LOW); 

}

if(voltage > 2 && voltage <=3){

digitalWrite(led1, HIGH); 
digitalWrite(led2, HIGH); 
digitalWrite(led3, LOW); 
digitalWrite(led4, LOW); 

}

if(voltage > 3 && voltage <=4){

digitalWrite(led1, HIGH); 
digitalWrite(led2, HIGH); 
digitalWrite(led3, HIGH); 
digitalWrite(led4, LOW); 

}

if(voltage > 4 && voltage <=4.5){

digitalWrite(led1, HIGH); 
digitalWrite(led2, HIGH); 
digitalWrite(led3, HIGH); 
digitalWrite(led4, HIGH); 

}
if(voltage > 4.5 && voltage <=5){

digitalWrite(led1, HIGH); 
digitalWrite(led2, HIGH); 
digitalWrite(led3, HIGH); 
digitalWrite(led4, HIGH); 
delay(100);

digitalWrite(led1, LOW); 
digitalWrite(led2, LOW); 
digitalWrite(led3, LOW); 
digitalWrite(led4, LOW); 
delay(100);

}

}


Comentario:
Ahora utilizamos un nuevo dispositivo que en realidad es un dispositivo frágil y sencillo, pero es de suma importancia o tienen un grado de mayor dificultad en su programación, ya que hay que genera variables un poco aleatorias donde escogemos los rangos en que tomara en cuenta para la generación de los datos.


LINK SIMULACIÓN 3 SENSOR DE TEMPERATURA: 

https://circuits.io/circuits/2888763/




SIMULACIÓN 4: SENSOR DE LUZ



Código:


int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;

void setup() {
  
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
  
  Serial.begin(9600);
}


void loop() {

  int sensorValue = analogRead(A0);  
  float voltage = sensorValue * ( 2.5/ 512); 
  Serial.println(voltage);
  
  if(voltage <=.5){
    
    digitalWrite(led1, LOW); 
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW); 
  
  }
  
    if(voltage > .5 && voltage <=1){
    
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW); 
  
  }
  
    if(voltage > 1 && voltage <=1.5){
    
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW); 
  
  }
  
    if(voltage > 1.5 && voltage <=2){
    
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH); 
    digitalWrite(led3, HIGH); 
    digitalWrite(led4, LOW); 
  
  }
  
    if(voltage > 2 && voltage <=2.25){
    
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH); 
    digitalWrite(led3, HIGH); 
    digitalWrite(led4, HIGH); 
  
  }
   if(voltage > 2.25 && voltage <=2.5){
    
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH); 
    digitalWrite(led3, HIGH); 
    digitalWrite(led4, HIGH); 
    delay(100);
    
    digitalWrite(led1, LOW); 
    digitalWrite(led2, LOW); 
    digitalWrite(led3, LOW); 
    digitalWrite(led4, LOW); 
    delay(100);
  
  }
  

}


Comentario:
Al hacer esta práctica ya no se tuvo gran dificultad ya que la base se aprendió con el sensor de temperatura solo damos los rangos de los datos que va a enviar con la intensidad de luz, y solo damos encender cuando los datos análogos son mas intensos para que nos arroje datos digitales.

LINK SIMULACIÓN 4 SENSOR DE LUZ: 

https://circuits.io/circuits/2888736-sensor-luz


SEGUNDO PARCIAL


INVESTIGACIÓN DIODO


Rectificador de onda
Un rectificador de onda completa es un circuito empleado para convertir una señal de corriente alterna de entrada (Vi) en corriente de salida (Vo) pulsante. A diferencia del rectificador de media onda, en este caso, la parte negativa de la señal se convierte en positiva o bien la parte positiva de la señal se convertirá en negativa, según se necesite una señal positiva o negativa de corriente continua.
Existen dos alternativas, bien empleando dos diodos o empleando cuatro

Rectificador con dos diodos












En el circuito de la figura, ambos diodos no pueden encontrarse simultáneamente en directa o en inversa, ya que las diferencias de potencial a las que están sometidos son de signo contrario; por tanto uno se encontrará polarizado inversamente y el otro directamente. La tensión de entrada (Vi) es, en este caso, la media de la tensión del secundario del transformador.

Tensión de entrada positiva











El diodo 1 se encuentra en polarización directa (conduce), mientras que el 2 se encuentra en inversa (no conduce). La tensión de salida es igual a la de entrada. Nota: los diodos en posición directa conducen altas corrientes, en posición inversa alta tensiones.

Tensión de entrada negativa












El diodo 2 se encuentra en polarización directa (conduce), mientras que el diodo 1 se encuentra en polarización inversa (no conduce). La tensión de salida es igual a la de entrada pero de signo contrario. El diodo 1 ha de soportar en inversa la tensión máxima del secundario.

PRÁCTICA

RECTIFICADOR DE MEDIA ONDA 

En la práctica de rectificador de media onda primeramente hacemos el circuito en el programa Multisim con todos los elementos que se solicitan, al tener el circuito armado

El primer circuito colocamos el DIODO de positivo a negativo




Vemos los valores que nos arroja





En la segunda parte de la práctica colocamos el DIODO de forma invertida, esto es decir de negativo a positivo y validamos los datos que nos arroja el Osciloscopio.





Rectificador de onda completa

En esta última parte de la práctica hacemos un rectificador de onda completa con cuatro DIODOS los cuales dos están de negativo a positivo y los otros dos DIODOS de positivo a negativo.





Vemos los valores que arroja con el Osciloscopio






Reporte de práctica: TRANSISTOR

En esta practica utilizamos cuatro amperímetro para validar la diferencia de de voltaje en cada sección del transistor 





TAREA

Amplificador operacional


Un amplificador operacional, a menudo conocido op-amp por sus siglas en inglés (operational amplifier) es un dispositivo amplificador electrónico de alta gananciaacoplado en corriente continua que tiene dos entradas y una salida. En esta configuración, la salida del dispositivo es, generalmente, de cientos de miles de veces mayor que la diferencia de potencial entre sus entradas.

¿CMRR?
La relación de rechazo del modo común o CMRR, es una especificación de rendimiento de un componente del circuito electrónico llamado amplificador operacional u op-amp. Esencialmente, es una medida de lo bien que un op-amp puede ignorar los voltajes que son comunes a ambas de sus entradas de corriente directa, y por lo tanto describe cuan limpiamente este amplifica las señales que aparecen como diferencias de tensión en sus entradas.
Lazo abierto

Amplificador operacional en modo de lazo abierto, configuración usada como comparador.
La magnitud de la ganancia {\displaystyle A_{\rm {OL}}} es, generalmente, muy grande, del orden de 100.000 veces o más y, por lo tanto, una pequeña diferencia entre las tensiones {\displaystyle V_{+}} y {\displaystyle V_{-}} hace que la salida del amplificador sea de un valor cercano al de la tensión de alimentación, situación conocida como saturación del amplificador. La magnitud de {\displaystyle A_{\rm {OL}}} no es bien controlada por el proceso de fabricación, así que es impráctico usar un amplificador en lazo abierto como amplificador diferencial.
Si la entrada inversora es conectada a tierra (0 V) de manera directa o mediante una resistencia {\displaystyle R_{g}} y el voltaje de entrada {\displaystyle V_{\rm {in}}} aplicado a la otra entrada es positivo, la salida será la de la máxima tensión positiva de alimentación; si {\displaystyle V_{\rm {in}}} es negativo, la salida será el valor negativo de alimentación. Como no existe realimentación, desde la salida a la entrada, el amplificador operacional actúa como comparador.

¿Rin deopamp?

El Opamp es un amplificador multietapa con una entrada diferencial, cuyas características se aproximan a las de un amplificador ideal. • Características ideales de un Opamp – Resistencia de entrada infinita – Resistencia de salida nula – Ganancia de tensión infinita – Respuesta de frecuencia infinita – Insensibilidad a la temperatura

¿Rout de opamp?
Un amplificador operacional es un amplificador de alta ganancia y un circuito integrado capaz de realizar un gran número de amplificaciones lineales y no lineales y funciones de procesamiento de señal. Es un amplificador de acople directo (directcoupled) Fue desarrollado en los 1950’s para usarse en computadoras para realizar operaciones matemáticas. Contiene transistores, capacitores, resistores.

Fuentes:
http://www.ifent.org/temas/amplificadores_operacionales.asp

http://unicrom.com/amplificador-operacional-ganancia-lazo-abierto/
























































































0 comentarios:

Publicar un comentario

ARCHIVOS INDIVIDUALES. Con la tecnología de Blogger.