Project tutorial
Tocadiscos binario

Tocadiscos binario © CC BY-NC-ND

Tocadiscos que lugar de utilizar una aguja en un disco de vinilo, utiliza tres sensores IR en línea para leer el patrón de un disco de papel

  • 1,598 views
  • 0 comments
  • 1 respect

Components and supplies

Apps and online services

About this project

Este proyecto ha sido desarrollado como parte del kit "CTC 101" de Arduino Educación.

Más info aquí: https://store.arduino.cc/arduino-ctc-101-program

Cómo funciona el tocadiscos binario

Paso 1: Conexiones eléctricas.

Conecta el piezo a través del puente de la breadboard. A continuación, conecta un terminal del piezo (no importa cual) al pin digital 8 y el otro a GND.

Después conecta los 5 cables largos a la placa, dejando suelto su otro extremo, uno a GND, uno a la alimentación y tres de diferentes colores a A1, A2 y A3. Después serán conectados al sensor IR Array, así que recuerda qué color está conectado a qué pin.

Paso2: Montaje de la caja / chásis base

Crea la caja base sin poner la tapa, introduce la placa en la caja del tocadiscos binario. Luego introduce el cable USB a través de uno de los agujeros laterales, el que está cerca del conector USB de la placa y conéctalo a la placa. Por último pasa el extremo suelto de los cables a través del agujero de la tapa del tocadiscos y cierra todo con la tapa.

Paso3: añadir los engranajes que encajan sobre la base.

Paso 4: incluir el array de sensores IR.

En primer lugar, encaja el sensor en la caja como se ve en la imagen.

Conecta los cables que se sacaron por la tapa al sensor.

Paso 5: Incluye el "vinilo" en el tocadiscos y desplaza la "aguja" para poder leerlo.

Paso 6: comprobar que el IR array funciona correctamente.

Se puede usar el ejemplo IRArray que está en el apartado "Help". La parte más importante de este ejemplo con las función para cambiar el threshold y la función test(), que se usan como se muestra en el siguiente código:

void setup(){
  ir.setThreshold(530);
  Serial.begin(9600);
}
void loop(){
  ir.test();
}

Paso 7: utilizar el ejemplo.

Incluir la librería educationShield.h en el IDE, que incluye también sus ejemplos. Abrir el ejemplo "BinaryLP" y subirlo a la placa.

Paso 8: ¡Mejora el proyecto!

Opciones sugeridas:

  • Crea otras melodías.
  • Modifica el programa para que en lugar de sonar una melodía, traduzca los números binarios del "disco" en código morse para mandar mensajes secretos mis amigos de la otra clase.

Code

Código para tocadiscosArduino
Código de ejemplo para el proyecto.
#include <EducationShield.h>
#include "pitches.h"

//IRArray(left, middle, right);
IRArray ir = IRArray(A1, A2, A3);

int piezo = 8; //Piezo pin
int lastReading = 0; 

void setup(){
  pinMode(piezo, OUTPUT);
  
  //Use this line to set the threshold of the IR sensors. 
  //If you are using the Uno board, set the threshold to 380,if you're using the 101 board, set it to 530.
  //Use ir.test() to check the values of each sensor in the loop()
  ir.setThreshold(530);
  
  Serial.begin(9600);
}

void loop(){
  //Use this line to check the values from each IR sensor
  //ir.test();
  
  //Read the binary pattern and get a number from 0 to 7
  int reading = ir.readBinary(); 
  
  //Play a note depending on the read value
  playNote(reading);

}

void playNote(int r){
  //If the last note we played is the same as the new note
  //we make a short break so that two notes are distinguished
  if(lastReading==r){
    noTone(piezo);
    delay(20);
  }
  
  //Play a different note depending on the value of b.
  //Check pitches.h to see which notes you can use.
  //In this case the scale is C Major.
  switch (r){
    case 0:
      break;
    case 1:
      tone(piezo, NOTE_C4);
      break;
    case 2:
      tone(piezo, NOTE_D4);
      break;
    case 3:
      tone(piezo, NOTE_E4);
      break;
    case 4:
      tone(piezo, NOTE_F4);
      break;
    case 5:
      tone(piezo, NOTE_G4);
      break;
    case 6:
      tone(piezo, NOTE_A4);
      break;
    case 7:
      tone(piezo, NOTE_B4);
      break;   
  }
  
  //If r is more than 0 we save that value to lastByte
  if(r>0)lastReading = r;
}
Test para IR Array
Código para probar los sensores IR

Schematics

Conexiones piezo
Block3 binary lp instruction 02 28409040290 o v91wysvvw8
Conexiones array IR
Block3 binary lp instruction 04 28661285906 o 1zeqcrhydh

Comments

Similar projects you might like

Kaleidoscope Infinity Mirror

Project tutorial by Lucas Ainsworth

  • 21,273 views
  • 2 comments
  • 83 respects

Intel Arduino 101 BLE Blynk Tank

Project tutorial by Johnathan Hottell

  • 11,100 views
  • 6 comments
  • 43 respects

Hiking Tracker

Project tutorial by Shahariar

  • 10,553 views
  • 17 comments
  • 56 respects

Arduino CNC Plotter (Drawing Machine)

Project tutorial by MEGA DAS

  • 9,975 views
  • 9 comments
  • 54 respects

Holiday Shadow Theater

Project tutorial by Lucas Ainsworth

  • 9,811 views
  • 7 comments
  • 80 respects

Simple UNO calculator

Project tutorial by Joprp05

  • 9,548 views
  • 2 comments
  • 11 respects
Add projectSign up / Login