DIY Programmable Pedal Loop Switcher Build (Part 2)

preview_player
Показать описание
This is part 2 of a True Bypass 8 Loop Programmable Loop Switcher
that I am building. I have now over come the programming problems and can now have multiple banks of 8 patches.
I am now planning the exact location of all components before I drill the holes required for mounting.
Hope you find this video inspiring!
Рекомендации по теме
Комментарии
Автор

Absolutely inspiring! :)

Great video and well explained. Just the coding part was bit messy and I thought I'd contribute. So, I have prepared the whole thing in little bit more organized .RAR file for download on this link:

massamsdc
Автор

You’ve made some good progress. I look forward to seeing the next steps.

dalepal
Автор

I'm glad to see your video as I am embarking on a similar project with extremely limited knowledge but an uninformed belief that it can be done and I can do it. Haha, we'll see. Lots of mistakes to be made yet. I hope you are still involved with this, it looks like I'm behind the curve a year or so.
My first question is regarding youtube as I am unable to locate the "description below" and none of the links in the replies are visible.
Good luck and Thanks!

hiiii
Автор

I'm in love with this project... Please include the led 7 segment for the bank mode =)

lucabruno
Автор

I'm looking forward to this. I'd like to become a little more keen to coding and begin to venture onward to digitally controlled analog effects or develop some interesting delay units, but I'm aiming to build a similar bypass looper out of wood with programmable presets and momentary switches. Your code will definitely help with that, so thank you!

andrewcampbell
Автор

6:39 - switch the LED with a brighter one and see if it is something in the power getting to the LED or just an out of spec LED.

ScottHz
Автор

is it possible to add EDIT & SAVE buttons?

KeyboardMac
Автор

great project, looking to do similar, could someone pls tell me if the code stays saved when powered down, ie pedal not in use for a period of time

lablewis
Автор

Here is that code. As it would not fit in the description.
/*
Intelligent LOOP SWITCHER for guitar pedal board
by Paul Graham
Note: This sketch is under development and is not complete.

Turns on and off pre-determined relays connected to digital
pin 13, 12, 11, 10, 9, 8, when pressing a pushbutton attached to pin 2, 3 or 4 for diferent configs.


The circuit description:
* LED attached from pins 13 to 8 with 160 Ohm resistor in series to ground
* pushbuttons attached to pin 2 to 4 from +5V
* 5K resistor attached to pins 2 to 4 from ground
*/

// constants won't change. They're used here to
// set pin numbers:
const int button1 = 22; // button 1 input pin
const int button2 = 23; // button 2 input pin
const int button3 = 24; // button 3 input pin
const int button4 = 25; // button 4 input pin
const int loop1 = 13; // loop 1 output pin
const int loop2 = 12; // loop 2 output pin
const int loop3 = 11; // loop 3 output pin
const int loop4 = 10; // loop 4 output pin
const int loop5 = 9; // loop 5 output pin
const int loop6 = 8; // loop 6 output pin
const int loop7 = 30; // loop 7 output pin
const int loop8 = 31; // loop 8 output pin
const int bankin1 = 35; //input for bank led



// variables will change:
int buttonState1 = 0; // variable for reading button1 status
int buttonState2 = 0; // variable for reading button2 status
int buttonState3 = 0; // variable for reading button3 status
int buttonState4 = 0; // variable for reading bank button
int bankread1 = 0;
long lastDebounce = 0;
long debounceDelay = 100;

void setup() {
// initialize the Loop pins as an outputs:
pinMode(loop1, OUTPUT);
pinMode(loop2, OUTPUT);
pinMode(loop3, OUTPUT);
pinMode(loop4, OUTPUT);
pinMode(loop5, OUTPUT);
pinMode(loop6, OUTPUT);
pinMode(loop7, OUTPUT);
pinMode(loop8, OUTPUT);

// initialize the button pins as an inputs:
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);
pinMode(bankin1, INPUT);

}

void loop() {
//one button bank switching with delay for debouncing
buttonState4 = digitalRead(button4);

if ((buttonState4 == HIGH)&&(bankread1 == LOW)){
//turn led8 on
digitalWrite(loop7, LOW);
delay(200);
digitalWrite(loop8, HIGH);
delay(200);
}
buttonState4 = digitalRead(button4);
bankread1 = digitalRead(bankin1);

if ((buttonState4 == HIGH) && (bankread1 == HIGH)){
//turn on led7
digitalWrite(loop8, LOW);
delay(200);
digitalWrite (loop7, HIGH);
delay(200);
}

// bank one programming
buttonState1 = digitalRead(button1);
bankread1 = digitalRead (bankin1);

if ((buttonState1 == HIGH) && (bankread1 == LOW)){
// turn LEDs on and off:
digitalWrite(loop1, HIGH);
digitalWrite(loop3, HIGH);
digitalWrite(loop5, HIGH);
digitalWrite(loop2, LOW);
digitalWrite(loop4, LOW);
digitalWrite(loop6, LOW);
}
buttonState2 = digitalRead(button2);
bankread1 = digitalRead (bankin1);
// turn LEDs on and off:
if ((buttonState2 == HIGH) && (bankread1 == LOW)) {
digitalWrite(loop1, LOW);
digitalWrite(loop3, LOW);
digitalWrite(loop5, LOW);
digitalWrite(loop2, HIGH);
digitalWrite(loop4, HIGH);
digitalWrite(loop6, HIGH);
}
buttonState3 = digitalRead(button3);
bankread1 = digitalRead (bankin1);
// turn LEDs on and off:
if ((buttonState3 == HIGH) && (bankread1 == LOW)) {
digitalWrite(loop1, HIGH);
digitalWrite(loop2, HIGH);
digitalWrite(loop3, LOW);
digitalWrite(loop4, LOW);
digitalWrite(loop5, HIGH);
digitalWrite(loop6, HIGH);
}

//bank two programming
buttonState1 = digitalRead(button1);
bankread1 = digitalRead (bankin1);

if ((buttonState1 == HIGH) && (bankread1 == HIGH)){
// turn LEDs on and off:
digitalWrite(loop1, LOW);
digitalWrite(loop3, HIGH);
digitalWrite(loop5, HIGH);
digitalWrite(loop2, LOW);
digitalWrite(loop4, HIGH);
digitalWrite(loop6, LOW);
}
buttonState2 = digitalRead(button2);
bankread1 = digitalRead (bankin1);
// turn LEDs on and off:
if ((buttonState2 == HIGH) && (bankread1 == HIGH)) {
digitalWrite(loop1, HIGH);
digitalWrite(loop3, LOW);
digitalWrite(loop5, LOW);
digitalWrite(loop2, HIGH);
digitalWrite(loop4, HIGH);
digitalWrite(loop6, LOW);
}
buttonState3 = digitalRead(button3);
bankread1 = digitalRead (bankin1);
// turn LEDs on and off:
if ((buttonState3 == HIGH) && (bankread1 == HIGH)) {
digitalWrite(loop1, HIGH);
digitalWrite(loop2, HIGH);
digitalWrite(loop3, HIGH);
digitalWrite(loop4, HIGH);
digitalWrite(loop5, HIGH);
digitalWrite(loop6, HIGH);
} }

PaulGrahamGuitarst
visit shbcf.ru