Beat 1 LED light всегда горит - должен выключиться
/**************************************/
const int lowestPin = 1;//the lowest one attach to
const int speaker = 13;
int ts = 4;//how many beats you want
int count = 1;
const int keyPin = 11;
const int keyPinR = 10;
int buttonState = LOW;
int buttonState2 = LOW;
int bpm = 120;
int rthm = 1;
/**************************************/
void setup()
{
Serial.begin(9600);
for(int thisPin = 1;thisPin <= ts;thisPin++)
{
pinMode(thisPin,OUTPUT); //initialize thisPin as an output
pinMode(8, INPUT);
pinMode(keyPin, INPUT);
pinMode(keyPinR, INPUT);
digitalWrite(keyPin, HIGH);
digitalWrite(keyPinR, HIGH);
}
}
/****************************************/
void loop()
{
buttonState = digitalRead(keyPin);
buttonState2 = digitalRead(keyPinR);
if(buttonState==LOW){
ts++;
if(ts==6)
{
ts = 2;
}
}
if(buttonState2==LOW){
rthm++;
Serial.println(rthm);
if(rthm==5)
rthm = 1;
}
for(int thisPin = 1;thisPin <= ts;thisPin++)
{
for(int r = 1; r<=rthm; r++){
bpm = pulseIn(6, HIGH);
digitalWrite(thisPin,HIGH);
pinMode(13,OUTPUT);
if(count == 1&&r==1)
tone(13,1500,40);
else if(r==1)
tone(13,1000,40);
else
tone(13,500,40);
delay((bpm-52)/rthm);
digitalWrite(thisPin,LOW);
pinMode(13,INPUT);
}
count++;
if(count >ts)
count = 1;
}
}
Это проект метронома. Каждый светодиод представляет собой бит. Однако светодиод для beat 1 всегда горит. Он должен выключаться, когда находится на другом ритме, отличном от одного. Что-нибудь не так с кодом?
@Mike Zhou, 👍0
Обсуждение1 ответ
▲ 1
Вы используете PIN1 в качестве выходного пина и записываете данные в последовательный интерфейс. Последовательный интерфейс использует контакты 1 и 0. Измените lowestPin на 2, а ts на 5, и это сработает.
,
@Code Gorilla
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Не могли бы вы уточнить, о каких контактах идет речь? У вас есть много контактов и несколько цифр, разбросанных по всему коду. Какой контакт всегда включен? Номер контакта., @Nick Gammon
Ваш код очень трудно читать, вероятно, из-за вставки, но почему вы устанавливаете контакты в качестве входных данных, а затем пишете на них. Также, почему вы устанавливаете режим pins 4 раза?, @Code Gorilla