jueves, 9 de julio de 2015


PRACTICAS DE ARDUINO (mega 2560)


POTENCIOMETRO
El potenciómetro es un dispositivo electromecánico que consta de una resistencia de valor fijo sobre la que se desplaza un contacto deslizante, el cursor, que la divide eléctricamente.

Conclusión:

En esta práctica se utilizo un potenciómetro y dos leds al utilizar el potenciómetro bajamos el voltaje y lo subimos con el potenciómetro y se reflejaba en el led se configuraron las salidas del potenciómetro paraqué el potenciómetro regule el voltaje y sea el que le asigne la salida hacia al led.


LISTADO DE COMPONENTES:
  • 1 Potenciómetro de 10kΩ
  • 2 Diodo LED
  • Varios cables 
CODIGO: IMAGEN DEL CIRCUITO:
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

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 led son ledPin1, ledPin2 y ledPin3.

Conclusión:
En esta práctica utilizamos tres lets, tres resistencias y cables, configuramos la salida para cada led de igual manera lo único que cambia de cada led es el delay que es el tiempo asignado para cada led en este caso cada led tiene diferente delay para que uno prenda más tiempo y que también solo uno parpadee antes de pasar al siguiente led esto es casi lo mismo como están configurado los semáforos. 
 
LISTADO DE COMPONENTES:
  • 3 OHMS
  • 3 LET’S
CODIGO: IMAGEN DEL CIRCUITO:
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
Conclusión:

En la práctica siguiente utilizamos mas led que en este caso son seis leds porque no utilizamos ningún display por eso utilizamos seis leds que son los números cada led se le asigna un numero y así es como u utilizamos el decodificador.

LISTADO DE 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
Arduino 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);
}


No hay comentarios.:

Publicar un comentario