Diferencia entre revisiones de «Tocadiscos caja de ritmos»
Ir a la navegación
Ir a la búsqueda
Sin resumen de edición |
Sin resumen de edición |
||
| (No se muestran 4 ediciones intermedias de otro usuario) | |||
| Línea 1: | Línea 1: | ||
__NOTOC__ | |||
La idea es que el usuario quiere generar un ritmo. | |||
El usuario va a colocar imanes sobre la superficie de un disco giratorio. | |||
Las posiciones de los imanes representarán los tiempos de los sonidos de la caja de ritmo. | |||
Los imanes van a moverse. | |||
Sensores estacionarios de campos magnéticos van a detectar cuando los imanes pasan por el sensor. | |||
=Motor original= | =Motor original= | ||
1290 rpm | 1290 rpm | ||
| Línea 8: | Línea 16: | ||
* [[Media:Uln2003a.pdf | Hoja técnica de ULN2003AN controlador para motor paso a paso]] | * [[Media:Uln2003a.pdf | Hoja técnica de ULN2003AN controlador para motor paso a paso]] | ||
=Sensores Hall= | =Sensores Hall (para detectar campos magnéticos) = | ||
* [https://www.diodes.com/datasheet/download/AH49E.pdf Hoja técnica de AH49E sensor Hall] | * [https://www.diodes.com/datasheet/download/AH49E.pdf Hoja técnica de AH49E sensor Hall] | ||
* [https://www.electronica.uy/producto/robotica/sensores-robotica/magnetico/modulo-sensor-magnetico-analogico/ El modulo de AH49E que compro en Eneka] | * [https://www.electronica.uy/producto/robotica/sensores-robotica/magnetico/modulo-sensor-magnetico-analogico/ El modulo de AH49E que compro en Eneka] | ||
=Codigo= | <gallery> | ||
Ah49e modulo pins.jpeg | |||
</gallery> | |||
=Videos= | |||
* https://cloud.undernet.uy/s/a6CEK3JqqbARwpn | |||
=Codigo 1= | |||
<pre> | <pre> | ||
| Línea 45: | Línea 60: | ||
} | } | ||
</pre> | </pre> | ||
=Codigo 2= | |||
<pre> | |||
define led 13 | |||
#define buzzer 11 | |||
#define hall0 A0 | |||
#define hall1 A1 | |||
uint16_t hall0val; | |||
uint16_t hall1val; | |||
void setup () { | |||
pinMode (led, OUTPUT); | |||
pinMode (buzzer, OUTPUT); | |||
Serial.begin(9600); | |||
} | |||
void loop () { | |||
hall0val = analogRead(hall0); | |||
hall0val -= 640; | |||
hall1val = analogRead(hall1); | |||
hall1val -= 640; | |||
//Serial.print("0, "); Serial.print("300, "); | |||
Serial.print(hall0val); | |||
Serial.print(" "); | |||
Serial.println(hall1val); | |||
if (hall0val > 50 || hall1val > 50) { | |||
digitalWrite(led, HIGH); | |||
digitalWrite(buzzer, HIGH); | |||
} | |||
else { | |||
digitalWrite(led, LOW); | |||
digitalWrite(buzzer, LOW); | |||
} | |||
// delayMicroseconds(300000); | |||
delay(500); | |||
} | |||
Revisión actual - 02:48 18 jun 2026
La idea es que el usuario quiere generar un ritmo.
El usuario va a colocar imanes sobre la superficie de un disco giratorio.
Las posiciones de los imanes representarán los tiempos de los sonidos de la caja de ritmo.
Los imanes van a moverse.
Sensores estacionarios de campos magnéticos van a detectar cuando los imanes pasan por el sensor.
Motor original
1290 rpm
84.7 cm de cinturón de goma
Motor Paso a Paso
Sensores Hall (para detectar campos magnéticos)
Videos
Codigo 1
#define led 13
#define buzzer 11
#define analogPin A0
uint16_t analogVal;
void setup () {
pinMode (led, OUTPUT);
pinMode (buzzer, OUTPUT);
Serial.begin(9600);
}
void loop () {
analogVal = analogRead(analogPin);
analogVal -= 640;
Serial.print("0, "); Serial.print("300, ");
Serial.println(analogVal);
if (analogVal > 50) {
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
}
else {
digitalWrite(led, LOW);
digitalWrite(buzzer, LOW);
}
delayMicroseconds(1000);
}
Codigo 2
define led 13
#define buzzer 11
#define hall0 A0
#define hall1 A1
uint16_t hall0val;
uint16_t hall1val;
void setup () {
pinMode (led, OUTPUT);
pinMode (buzzer, OUTPUT);
Serial.begin(9600);
}
void loop () {
hall0val = analogRead(hall0);
hall0val -= 640;
hall1val = analogRead(hall1);
hall1val -= 640;
//Serial.print("0, "); Serial.print("300, ");
Serial.print(hall0val);
Serial.print(" ");
Serial.println(hall1val);
if (hall0val > 50 || hall1val > 50) {
digitalWrite(led, HIGH);
digitalWrite(buzzer, HIGH);
}
else {
digitalWrite(led, LOW);
digitalWrite(buzzer, LOW);
}
// delayMicroseconds(300000);
delay(500);
}