Mostrando entradas con la etiqueta ardutronica. Mostrar todas las entradas
Mostrando entradas con la etiqueta ardutronica. Mostrar todas las entradas

sábado, 10 de enero de 2015

Amplificador operacional

AMPLIFICADOR 

OPERACIONAL



Se trata de un dispositivo electrónico (normalmente se presenta como circuito integrado) que tiene dos entradas y una salida. La salida es la diferencia de las dos entradas multiplicada por un factor (G) (ganancia)

Los terminales son:
V+: entrada no inversora
V-: entrada inversora
VOUT: salida
VS+: alimentación positiva
VS-: alimentación negativa

Habitualmente los pines de alimentación son omitidos en los diagramas eléctricos por claridad.


Tabla de Características Ideales y Reales

Parámetro
Valor ideal
Valor real
Zin
10 TΩ
Zout
0
100 Ω
Bw
1 MHz
G
100.000
Ac
0


Los valores reales dependen del modelo, estos valores son genéricos y son una referencia.
                         



Comportamiento en corriente continua

 

Lazo abierto:

La realimentación salida del A. O. será la resta de sus dos entradas multiplicada por un factor. Este factor suele ser del orden de 100.000(que se considerará infinito en cálculos con el componente ideal). Por lo tanto si la diferencia entre las dos tensiones es de 1V la salida debería ser 100.000 V.

Lazo cerrado o realimentado:

Se conoce como lazo cerrado a la realimentación en un circuito. Aquí aparece una realimentación negativa. Para conocer el funcionamiento de esta configuración se parte de las tensiones en las dos entradas exactamente iguales, se supone que la tensión en la pata + sube y, por tanto, la tensión en la salida también se eleva.
Siempre que hay realimentación negativa se aplican estas dos aproximaciones para analizar el circuito:
  • V+ = V- (lo que se conoce como principio del cortocircuito virtual).
  • I+ = I- = 0
Cuando se realimenta negativamente un amplificador operacional, al igual que con cualquier circuito amplificador, se mejoran algunas características del mismo como una mayor impedancia en la entrada y una menor impedancia en la salida.





Comportamiento en corriente alterna:


En principio la ganancia calculada para continua puede ser aplicada para alterna, pero a partir de ciertas frecuencias aparecen limitaciones.

Configuraciones:

Comparador:
  • Esta es una aplicación sin la retroalimentación. Compara entre las dos entradas y saca una salida en función de qué entrada sea mayor. Se puede usar para adaptar niveles lógicos.

Seguidor :


  • Es aquel circuito que proporciona a la salida la misma tensión que a la entrada.

Como la tensión en las dos patillas de entradas es igual: Vout = Vin

Por ejemplo, si la resistencia interna del voltímetro es Re (entrada del amplificador), la resistencia de la línea de cableado es Rl y la resistencia interna del sensor es Rg, entonces la relación entre la tensión medida por el voltímetro (Ve) y la tensión generada por el sensor (Vg) será la correspondiente a este divisor de tensión:

 

No inversor


Como observamos, la tensión de entrada, se aplica al pin positivo, pero como conocemos que la ganancia del amplificador operacional es muy grande, el voltaje en el pin positivo es igual al voltaje en el pin negativo y positivo, conociendo el voltaje en el pin negativo podemos calcular la relación que existe entre el voltaje de salida con el voltaje de entrada haciendo uso de un pequeño divisor de tensión.


Sumador inversor


  • La salida está invertida
  • Para resistencias independientes R1, R2,... Rn
    • V_\mathrm{out} = -R_f \left(\frac{V_1}{R_1} + \frac{V_2}{R_2} + \dots + \frac{V_n}{R_n}\right)
  • La expresión se simplifica bastante si se usan resistencias del mismo valor
  • Impedancias de entrada: Zn = Rn

Restador Inversor


  • Para resistencias independientes R1,R2,R3,R4:
    •  V_\mathrm{out} = V_2 \left( { \left( R_3 + R_1 \right) R_4 \over \left( R_4 + R_2 \right) R_1} \right) - V_1 \left( {R_3 \over R_1} \right)

Xavi Jornet Sanchis








martes, 10 de junio de 2014

Caja de música con Arduino

Proyecto fin de curso de electrónica, por Guillermo Seguí

Juguete con movimiento, luces, sonido y pulsadores.
Para este pequeño proyecto encontré la inspiración en mi sobrina. Se me ocurrió hacer algo sencillo, acorde con mis pequeños conocimientos, y monté un juguete para entretenerla un poco.

Materiales empleados:
- Arduino UNO
- Diodos LED
- Pulsadores
- Altavoz piezoeléctrico
- Servomotor
- Protoboard
- Cable
- Caja metálica
- Estaño
- Cinta aislante.

Herramientas utilizadas:
- Soldador
- Alicates universales
- Tenazas
- Punzón

Utilicé una caja metálica antigua de bombones. Muchas de las conexiones las soldé para darle resistencia al juguete. Y utilicé cinta aislante para asegurarme de que no tocara ninguna parte del circuito la carcasa de metal.

Primero utilicé el servo y utilicé el código de la FT20. Pero a pesar del montaje, que me costó lo suyo, quise mojarme con el código y decidí insertarle el parpadeo led… al final lo conseguí!

Ya metido en materia, le añadí un par de pulsadores con un código que lo compaginaba todo. Pero aún quería más!

Por último pensé que solo le faltaba sonido. Le inserté el altavoz, y de la práctica de sonido cogí el código y, no tras pelear bastante, conseguí que funcionara!!

La verdad es que le he cogido el punto a este pequeño cacharrete y estoy seguro que con el tiempo conseguiré montajes interesantes, al menos para mí.

Esta es una serie de imágenes que muestran el montaje y su evolución. También adjunto en el fichero los diferentes códigos que fui generando así como un vídeo demostrativo. Espero que mi trabajo sea de tu agrado.

Video de funcionamiento

sábado, 29 de marzo de 2014

Proyecto ARdutronica - Arduino con LDR

Hola gente que nos sigue en el blogger aquí os vamos a dejar una presentación donde se explica el montaje y funcionamiento de iluminación de leds con LDR en arduino uno.

Este proyecto esta realizado por los alumnos del centro escuelas san jose jesuitas, del curso de grado medio de instalaciones eléctricas y automáticas.


Descarga la presentación

Realizado por Sergio Cebrián Lara, Jesus Ruiz Torres y Sergio Veses Sanchez

Proyecto ARdutronica Sensor temperatura NTC

SENTOR DE TEMPERATURA DE NTC

En este proyecto simularemos con 4 leds del aviso de las temperaturas. Hemos utilizado un potenciómetro para establecer la temperatura para que nos vaya a dar unos intervalos fijos. Pero igualmente se podría utilizar una NTC para un sistema para controlar que la temperatura no descienda un punto muy bajo. Con el NTC se activaran las 4 salidas del arduino y ira activando cada salidas cada 2 grados.

MATERIALES

  • Arduino
  • Resistencias
  • NTC
  • Potenciometro
  • Protoboard 
  • Leds
  • Cables
PROTOBOARD


CODIGO
/*
 Tutorial # 0005 Arduino Academy - Sensor NTC

 Conectamos una NTC a una entrada
 analógica para controlar cinco salidas
 en función de la temperatrura.

 Además utilizaremos un ponteciómetro para
 controlar la temperatura a partir de la cual
 se activarán las salidas

 Este proyecto es de dominio público.
 */

//Añadimos la librería math.h
#include <math.h>

//Pines para los LED
int pinLed1 = 8;
int pinLed2 = 9;
int pinLed3 = 10;
int pinLed4 = 11;
int pinLed5 = 12;

//Pines para las entradas analógicas
int analogPin1 = 0;
int analogPin2 = 1;

//Escala de Avisos
int escala = 2;

//Variable para la temperatura de disparo
double tempMin = 0.0;

//Datos para las ecuaciones

float Vin = 5.0;     // [V]       Tensión alimentación del divisor
float Rfija = 1000;  // [ohm]     Resistencia fija del divisor
float R25 = 2800;    // [ohm]     Valor de NTC a 25ºC
float Beta = 3900.0; // [K]      Parámetro Beta de NTC
float T0 = 293.15;   // [K]       Temperatura de referencia en Kelvin

float Vout = 0.0;    // [V]       Variable para almacenar Vout
float Rntc = 0.0;    // [ohm]     Variable para NTC en ohmnios

float TempK = 0.0;   // [K]       Temperatura salida en Kelvin
float TempC = 0.0;   // [ºC]      Temperatura salida en Celsius

void setup() {

  //Comenzamos la comunicación puerto serie
  Serial.begin(9600);

  //Declaramos pines de salida
  pinMode(pinLed1, OUTPUT);
  pinMode(pinLed2, OUTPUT);
  pinMode(pinLed3, OUTPUT);
  pinMode(pinLed4, OUTPUT);
  pinMode(pinLed5, OUTPUT);

  //Y los pines de entrada
  pinMode(analogPin1, INPUT);
  pinMode(analogPin2, INPUT);

}

void loop()
{
  //Primero leemos el pootenciómetro
  tempMin = analogRead(analogPin2);
  //Lo mapeamos a valores de -100 a 800
  tempMin = map (tempMin, 0, 1023, -100, 800);
  //Y lo dividimos entre 10 para darle un decimal
  tempMin = tempMin/10;

  //Y lanzamos el ajuste establecido via serie
  Serial.println("-----------------------------------------------");
  Serial.println();
  Serial.print("AJUSTE DE TEMPERATURA MINIMA A ");
  Serial.print(tempMin);
  Serial.println(" GRADOS CELSIUS");
  Serial.println();
  Serial.println("-----------------------------------------------");

  //Y ahora calculamos la Temperatura

  //Primero la Vout del divisor
  Vout=(Vin/1024)*(analogRead(analogPin1));

  //Ahora la resistencia de la NTC
  Rntc=(Vout*Rfija)/(Vin-Vout);

  //Y por último la temperatura en Kelvin
  TempK = Beta/(log(Rntc/R25)+(Beta/T0));

  //Y ahora la pasamos a celsius
  TempC = TempK-273.15;

  //Y lo mostramos por puerto serie
  Serial.println();
  Serial.print("LA TEMPERATURA DE LA NTC ES DE ");
  Serial.print(TempC);
  Serial.println(" GRADOS CELSIUS");
  Serial.println();

  //Ahora las comparaciones para las salidas
  if(TempC < tempMin)
  {
  digitalWrite(pinLed1, HIGH);
  digitalWrite(pinLed2, LOW);
  digitalWrite(pinLed3, LOW);
  digitalWrite(pinLed4, LOW);
  digitalWrite(pinLed5, LOW);
  }
  else if (((TempC <= (tempMin + escala)) & (TempC > tempMin)))
  {
  digitalWrite(pinLed1, HIGH);
  digitalWrite(pinLed2, HIGH);
  digitalWrite(pinLed3, LOW);
  digitalWrite(pinLed4, LOW);
  digitalWrite(pinLed5, LOW);
  }
  else if (((TempC<=(tempMin+(escala*2)))&(TempC>tempMin+escala)))
  {
  digitalWrite(pinLed1, HIGH);
  digitalWrite(pinLed2, HIGH);
  digitalWrite(pinLed3, HIGH);
  digitalWrite(pinLed4, LOW);
  digitalWrite(pinLed5, LOW);
  }
  else if ((TempC<=(tempMin+(escala*3)))&(TempC>tempMin+(escala*2)))
  {
  digitalWrite(pinLed1, HIGH);
  digitalWrite(pinLed2, HIGH);
  digitalWrite(pinLed3, HIGH);
  digitalWrite(pinLed4, HIGH);
  digitalWrite(pinLed5, LOW);
  }
  else if (TempC > (tempMin + (escala*4)))
  {
  digitalWrite(pinLed1, HIGH);
  digitalWrite(pinLed2, HIGH);
  digitalWrite(pinLed3, HIGH);
  digitalWrite(pinLed4, HIGH);
  digitalWrite(pinLed5, HIGH);
  }

  //Un pequeño delay para no volver loco al puerto serie
  delay(500);

HECHA POR:
NESTOR GARCIA SALVATIERRA
JOSE MANUEL CALLEJA GÓMEZ