jueves, 9 de julio de 2015

Practicas (Arduino)


Potenciómetro
El potenciómetro es un dispositivo electromecánico que permite controlar la intensidad de corriente que fluye por un circuito si se conecta en paralelo, o la diferencia de potencial al conectarlo en serie.

Un potenciómetro está compuesto por una resistencia de valor total constante a lo largo de la cual se mueve un cursor, que es un contacto móvil que divide la resistencia total en dos resistencias de valor variable y cuya suma es la resistencia total, por lo que al mover el cursor una aumenta y la otra disminuye.

La práctica nos permite jugar con el voltaje, es decir, que al momento de que ya el circuito esta ya diseñado o montado nos permite que al momento de mover o manipular el potenciómetro podemos subir o bajar la intensidad, la prueba la podemos ver de manera visual o grafica y la observamos en la luminosidad que nos muestra el diodo LED, ya que baja o sube la intensidad del mismo.
 
 
LISTADO DE COMPONENTES: 

1 Potenciómetro de 10kΩ 
2 Diodo LED 
Varios cables
Aruduino
Protoboard
 

CODIGO:                                                                             

int potPin=A2;

int ledPin=13;

int val=0;

void setup()

{

 pinMode(ledPin,OUTPUT);

}

void loop()

{

 val=analogRead(potPin);

 digitalWrite(ledPin,HIGH);

 delay(val);

 digitalWrite(ledPin,LOW);

 delay(val);

}
 

 

 
 

CODIFICADOR
Un codificador es un circuito combinatorio que cuenta con un número determinado de entradas, de las cuales sólo una tiene el estado lógico 1, y se genera un código de varios bits que depende de cuál sea la entrada excitada.
Existen algunos tipos de codificadores:
Con Prioridad sólo una de las entradas puede estar activa a la vez entonces en cualquier línea de la tabla de este circuito todas las entradas excepto una serán 0.
Sin Prioridad
En esta practica lo que pretendemos es simular el funcionamiento de un semáforo por lo cual se colocaran o utilizaran    

Se trata de encender y apagar 3 LEDs colocados en las salidas 23,24,26,28,30 Y 32  (PIN23, PIN24,PIN26,PIN28,PIN30 Y PIN32 ) con una cadencia de 200 ms.
Las variables asignadas a cada Diodo LED son:
LedPin1
LedPin2 
LedPin3

LISTADO DE COMPONENTES:

·         3 OHMS

·         3 LET’S

 

CODIGO

int ledPin1=6;

int ledPin2=7;

int ledPin3=8;

 

void setup()

{

  pinMode(ledPin1, OUTPUT);

  pinMode(ledPin2, OUTPUT);

  pinMode(ledPin3, OUTPUT);

  digitalWrite(ledPin1, LOW);

  digitalWrite(ledPin2, LOW);

  digitalWrite(ledPin3, LOW);

}

void loop()

{

  digitalWrite(ledPin1, HIGH);

 delay(200);

  digitalWrite(ledPin1, LOW);

  digitalWrite(ledPin2, HIGH);

  delay(200);

  digitalWrite(ledPin2, LOW);

  digitalWrite(ledPin3, HIGH);

  delay(200);

  digitalWrite(ledPin3, LOW);

 
 





DECODIFICADOR
Un decodificador o descodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es, convierte un código binario de entrada (natural, BCD, etc.) de N bits de entrada y M líneas de salida.






 




 

 COMPONENTES:
6 led
6 ohms
circuitos


CODIGO:
 
 
int pin23=23;
 
 
int pin24=24; 
int pin26=26;
int pin28=28;
int pin30=30;
int pin32=32;
int timer=200;

void setup()
{
pinMode(pin23,OUTPUT);
pinMode(pin24,OUTPUT);
pinMode(pin26,OUTPUT);
pinMode(pin28,OUTPUT);
pinMode(pin30,OUTPUT);
pinMode(pin32,OUTPUT);
}

void loop()
{
digitalWrite(pin23,HIGH);
delay(timer);
digitalWrite(pin23,LOW);
delay(timer);
digitalWrite(pin24,HIGH);
delay(timer);
digitalWrite(pin24,LOW);
delay(timer);
digitalWrite(pin26,HIGH);
delay(timer);
digitalWrite(pin26,LOW);
delay(timer);
digitalWrite(pin28,HIGH);
delay(timer);
digitalWrite(pin28,LOW);
delay(timer);
digitalWrite(pin30,HIGH);
delay(timer);
digitalWrite(pin30,LOW);
delay(timer);
digitalWrite(pin32,HIGH);
delay(timer);
digitalWrite(pin32,LOW);
delay(timer);
digitalWrite(pin30,HIGH);
delay(timer);
digitalWrite(pin30,LOW);
delay(timer);
digitalWrite(pin28,HIGH);
delay(timer);
digitalWrite(pin28,LOW);
delay(timer);
digitalWrite(pin26,HIGH);
delay(timer);
digitalWrite(pin26,LOW);
delay(timer);
digitalWrite(pin24,HIGH);
delay(timer);
digitalWrite(pin24,LOW);
delay(timer);
}

 

 

 

CICUITOS ARITMETICOS

          Definición

Estos tienen como objetivo realizar operaciones aritméticas en formato binario o BCD, punto fijo o punto flotante. Dependiendo de la aplicación se utilizarán unos u otros.

Son dispositivos MSI que pueden realizar operaciones aritméticas (suma, resta, multiplicación y división) con números binarios. De todos los dispositivos, nos centraremos en los comparadores de magnitud, detectores y generadores de paridad, sumadores y ALU’s; (El diseño MSI surgió gracias a los avances en la tecnología de integración. Estos avances abarataron los costes de producción, y permitieron el desarrollo de circuitos más generales.)
Ejercicio

En este ejercicio se realizo un circuito donde presionando un botón se realizara una función aritmética, la suma y en el display será representada de manera binaria. La suma va del 0 al 9 y se cicla.

MATERIALES
1 Display de 7 dígitos (cátodo común)
1 Resistencia 10KO
1Arduino Mega 2560
1 Push botón

Circuito




Código


int pinBtnS = 3;
int pinA = 11;
int pinB = 10;
int pinC= 9;
int pinD = 8;
int pinE = 7;
int pinF = 6;
int pinG = 5;

int ANODOCOMUN = 0;
int CATODOCOMUN = 1;

int anterior = 0;
int estadoS = 0;
int estadoR = 0;
int number = 0;

void setup()
{
  pinMode(pinBtnS, INPUT);
  pinMode(pinA, OUTPUT);
  pinMode(pinB, OUTPUT);
  pinMode(pinC, OUTPUT);
  pinMode(pinD, OUTPUT);
  pinMode(pinE, OUTPUT);
  pinMode(pinF, OUTPUT);
  pinMode(pinG, OUTPUT);
}

void writeNumber(int number, int type = 1, int pinA = 11, int pinB = 10, int pinC = 9, int pinD = 8, int pinE = 7, int pinF = 6, int pinG = 5)
{
  switch(number)
  {
    default:
    case 0:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, HIGH);
      }

      break;

    case 1:
      if(type == 0)
      {
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
      }
      break;

    case 2:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, LOW);
      }
      break;

    case 3:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, LOW);
      }
      break;

    case 4:
      if(type == 0)
      {
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      break;

    case 5:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      break;

    case 6:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      break;

    case 7:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
      }
      break;
      case 8:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, LOW);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      break;
    case 9:
      if(type == 0)
      {
        digitalWrite(pinA, LOW);
        digitalWrite(pinB, LOW);
        digitalWrite(pinC, LOW);
        digitalWrite(pinD, LOW);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, LOW);
        digitalWrite(pinG, LOW);
      }
      else
      break;
  }
}
void loop()
{
  estadoS = digitalRead(pinBtnS);
  if(estadoS && anterior == 0)
  {
    number++;
    if(number == 10)
      number = 0;
  }
  anterior = estadoS;
  writeNumber(number, ANODOCOMUN, pinA, pinB, pinC, pinD, pinE, pinF, pinG);
 }
 
Podemos concluir que se pueden realizar diferentes practicas si utilizamos el Arduino, ya que solo requerimos de elaborar un código de programación para poder realizarlos y como podemos ver en la mayoría de ellos solo requerimos de muy pocos componentes para poder ejecutarlos una vez que se tiene un diagrama, son realidad son prácticos y   sencillos ya que si queremos algo mas innovador tendremos que estudiar mas a fondo lo que queremos realizar y esto también va a depender del presupuesto o lo innovador que pretendas hacer tus proyectos.
 

No hay comentarios:

Publicar un comentario