Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
- // this constant won't change:
- const int buttonPin = 16; // the pin that the pushbutton is attached to
- const int ledPin1 = 17;
- const int ledPin2 = 18;
- const int ledPin3 = 19; // the pin that the LED is attached to
- const int dataPin = 8; //Serial Output to Shift Register
- const int latchPin = 9; //Shift Register Latch Pin
- const int clockPin = 10;
- const int dataPin2 = 11; //Serial Output to Shift Register
- const int latchPin2 = 12; //Shift Register Latch Pin
- const int clockPin2 = 13;
- // Variables will change:
- int buttonPushCounter = 0; // counter for the number of button presses
- int buttonState = 0; // current state of the button
- int lastButtonState = 0; // previous state of the button
- int met = 0;
- float timebtw = 0.0;
- int data = 1;
- int data2 = 0;
- int lineValL = 0;
- int lineVal2L = 0;
- int lineValR = 1;
- int lineVal2R = 1;
- int potVal = 1;
- int vals[16] = {0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767};
- int vals2[16] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32728};
- int vals3[16] = {0, 257, 257, 897, 897, 1985, 1985, 4065, 4065, 8177, 8177, 16377, 16377, 32765, 32765, 65535};
- int vals4[4] = {63489, 1985, 63, 65535};
- void setup() {
- lcd.begin(16, 2);
- pinMode(latchPin, OUTPUT);
- pinMode(clockPin, OUTPUT);
- pinMode(dataPin, OUTPUT);
- pinMode(latchPin2, OUTPUT);
- pinMode(clockPin2, OUTPUT);
- pinMode(dataPin2, OUTPUT);
- pinMode(buttonPin, INPUT);
- pinMode(ledPin1, OUTPUT);
- pinMode(ledPin2, OUTPUT);
- pinMode(ledPin3, OUTPUT);
- Serial.begin(9600);
- /* digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (0));
- shiftOut(dataPin, clockPin, LSBFIRST, (0) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (0));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (0) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- digitalWrite(ledPin1, HIGH);
- delay(150);
- digitalWrite(ledPin2, HIGH);
- delay(150);
- digitalWrite(ledPin3, HIGH);
- delay(300);
- digitalWrite(ledPin1, LOW);
- digitalWrite(ledPin2, LOW);
- digitalWrite(ledPin3, LOW);
- for(int i=0; i <17; i++){
- digitalWrite(latchPin, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals2[i]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals2[i]) >> 8);
- digitalWrite(latchPin, HIGH);
- delay(35);
- }
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (0));
- shiftOut(dataPin, clockPin, LSBFIRST, (0) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (0));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (0) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- for(int i=16; i >0; i--){
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals2[i]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals2[i]) >> 8);
- digitalWrite(latchPin2, HIGH);
- delay(35);
- }
- for(int i=0; i <=16; i++){
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals[i]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals[i]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals[i]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals[i]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- delay(50);
- }
- for(int i=16; i >0; i--){
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals[i]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals[i]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals[i]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals[i]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- delay(50);
- }
- */
- }
- void loop() {
- // ********************Seleção de modos***************************
- buttonState = digitalRead(buttonPin);
- if (buttonState != lastButtonState) {
- if (buttonState == HIGH) {
- buttonPushCounter++;
- }
- else {
- }
- }
- lastButtonState = buttonState;
- //*************************************************************************
- //**********************Analog to Digital Left Channel*********************************
- int lineValL = analogRead(0); //set VU as value of pin A5 reading
- //glow the LEDs depending on the ammount of sound detected by the electret
- if (lineValL>480&&lineValL<544){
- lineVal2L = 1;
- }
- else if (lineValL>448&&lineValL<576){
- lineVal2L = 2;
- }
- else if (lineValL>416&&lineValL<608){
- lineVal2L = 3;
- }
- else if (lineValL>384&&lineValL<640){
- lineVal2L = 4;
- }
- else if (lineValL>352&&lineValL<672){
- lineVal2L = 5;
- }
- else if (lineValL>320&&lineValL<704){
- lineVal2L = 6;
- }
- else if (lineValL>288&&lineValL<736){
- lineVal2L = 7;
- }
- else if (lineValL>256&&lineValL<768){
- lineVal2L = 8;
- }
- else if (lineValL>224&&lineValL<800){
- lineVal2L = 9;
- }
- else if (lineValL>192&&lineValL<832){
- lineVal2L = 10;
- }
- else if (lineValL>160&&lineValL<864){
- lineVal2L = 11;
- }
- else if (lineValL>128&&lineValL<896){
- lineVal2L = 12;
- }
- else if (lineValL>96&&lineValL<928){
- lineVal2L = 13;
- }
- else if (lineValL>64&&lineValL<960){
- lineVal2L = 14;
- }
- else if (lineValL>32&&lineValL<992){
- lineVal2L = 15;
- }
- else if (lineValL>0&&lineValL<1024){
- lineVal2L = 16;
- }
- //**********************Analog to Digital Right Channel*********************************
- lineValR = analogRead(1); //set VU as value of pin A5 reading
- //glow the LEDs depending on the ammount of sound detected by the electret
- if (lineValR>480&&lineValR<544){
- lineVal2R = 1;
- }
- else if (lineValR>448&&lineValR<576){
- lineVal2R = 2;
- }
- else if (lineValR>416&&lineValR<608){
- lineVal2R = 3;
- }
- else if (lineValR>384&&lineValR<640){
- lineVal2R = 4;
- }
- else if (lineValR>352&&lineValR<672){
- lineVal2R = 5;
- }
- else if (lineValR>320&&lineValR<704){
- lineVal2R = 6;
- }
- else if (lineValR>288&&lineValR<736){
- lineVal2R = 7;
- }
- else if (lineValR>256&&lineValR<768){
- lineVal2R = 8;
- }
- else if (lineValR>224&&lineValR<800){
- lineVal2R = 9;
- }
- else if (lineValR>192&&lineValR<832){
- lineVal2R = 10;
- }
- else if (lineValR>160&&lineValR<864){
- lineVal2R = 11;
- }
- else if (lineValR>128&&lineValR<896){
- lineVal2R = 12;
- }
- else if (lineValR>96&&lineValR<928){
- lineVal2R = 13;
- }
- else if (lineValR>64&&lineValR<960){
- lineVal2R = 14;
- }
- else if (lineValR>32&&lineValR<992){
- lineVal2R = 15;
- }
- else if (lineValR>0&&lineValR<1024){
- lineVal2R = 16;
- }
- //***********************************************************
- switch (buttonPushCounter){
- case 1: {
- lcd.setCursor(1, 0);
- lcd.print("Modo Normal");
- lcd.setCursor(1, 1);
- lcd.print("Modo Normal");
- Serial.print("normal");
- digitalWrite(ledPin1, HIGH);
- digitalWrite(ledPin2, LOW);
- digitalWrite(ledPin3, LOW);
- /*
- int lineVal = analogRead(A0);
- Serial.print(" ---- ");
- Serial.print(lineVal);
- constrain(lineVal, 512, 1023);
- int lineVal2 = map(lineVal, 512, 1023, 0, 16);
- if(lineVal2 <0){
- lineVal2 = 0;}
- constrain(lineVal2, 0, 16);
- Serial.print(" ---- ");
- Serial.println(lineVal2);
- */
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, MSBFIRST, (vals[lineVal2L]) >> 8);
- shiftOut(dataPin, clockPin, MSBFIRST, (vals[lineVal2L]));
- shiftOut(dataPin2, clockPin2, MSBFIRST, (vals[lineVal2R]) >> 8);
- shiftOut(dataPin2, clockPin2, MSBFIRST, (vals[lineVal2R]));
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- }
- break;
- case 2: {
- lcd.setCursor(1, 0);
- lcd.print("Modo Ponto");
- lcd.setCursor(1, 1);
- lcd.print("Modo Ponto");
- digitalWrite(ledPin1, LOW);
- digitalWrite(ledPin2, HIGH);
- digitalWrite(ledPin3, LOW);
- /* int lineVal = analogRead(A0);
- int lineVal2 = map(lineVal, 512, 1023, 0, 16);
- constrain(lineVal2, 0, 16);
- Serial.println(lineVal2);
- */
- delay(20);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, MSBFIRST, (vals2[lineVal2L]) >> 8);
- shiftOut(dataPin, clockPin, MSBFIRST, (vals2[lineVal2L]));
- shiftOut(dataPin2, clockPin2, MSBFIRST, (vals2[lineVal2R]) >> 8);
- shiftOut(dataPin2, clockPin2, MSBFIRST, (vals2[lineVal2R]));
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- lcd.clear();
- }
- break;
- case 3: {
- lcd.setCursor(1, 0);
- lcd.print("Modo Meio");
- lcd.setCursor(1, 1);
- lcd.print("Modo Meio");
- digitalWrite(ledPin1, LOW);
- digitalWrite(ledPin2, LOW);
- digitalWrite(ledPin3, HIGH);
- /* int lineVal = analogRead(A0);
- int lineVal2 = map(lineVal, 512, 1024, 0, 16);
- Serial.println(lineVal2);
- constrain(lineVal2, 0, 16);
- */
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals3[lineVal2L]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals3[lineVal2L]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals3[lineVal2R]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals3[lineVal2R]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- lcd.clear();
- }
- break;
- case 4:{
- digitalWrite(ledPin1, HIGH);
- digitalWrite(ledPin2, HIGH);
- digitalWrite(ledPin3, LOW);
- /*
- int lineVal = analogRead(A0);
- int lineVal2 = map(lineVal, 512, 1024, 0, 16);
- constrain(lineVal2, 0, 16);
- */
- if(lineVal2L > 12){
- digitalWrite(latchPin, LOW);
- digitalWrite(dataPin, HIGH);
- digitalWrite(clockPin, HIGH);
- digitalWrite(clockPin, LOW);
- digitalWrite(dataPin, LOW);
- digitalWrite(latchPin, HIGH);
- Serial.println("1");
- delay(20);
- }
- else{
- digitalWrite(latchPin, LOW);
- digitalWrite(clockPin, HIGH);
- digitalWrite(clockPin, LOW);
- digitalWrite(latchPin, HIGH);
- Serial.println("0");
- delay(20);
- }
- if(lineVal2R > 12){
- digitalWrite(latchPin2, LOW);
- digitalWrite(dataPin2, HIGH);
- digitalWrite(clockPin2, HIGH);
- digitalWrite(clockPin2, LOW);
- digitalWrite(dataPin2, LOW);
- digitalWrite(latchPin2, HIGH);
- delay(20);
- }
- else{
- digitalWrite(latchPin2, LOW);
- digitalWrite(clockPin2, HIGH);
- digitalWrite(clockPin2, LOW);
- digitalWrite(latchPin2, HIGH);
- delay(20);
- }
- }
- break;
- /* case 5: {
- digitalWrite(ledPin1, HIGH);
- digitalWrite(ledPin2, LOW);
- digitalWrite(ledPin3, HIGH);
- int potVal = analogRead(2);
- Serial.print(potVal);
- Serial.print("------");
- int potVal2 = map(potVal, 0 , 1023 , 60 , 400);
- Serial.print(potVal2);
- timebtw = (60000/potVal2);
- Serial.print("------");
- Serial.println(timebtw);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[met]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[met]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[met]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[met]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- delay(15);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[0]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[0]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[0]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[0]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- met = met + 1;
- delay(timebtw-15);
- potVal = analogRead(2);
- Serial.print(potVal);
- Serial.print("------");
- potVal2 = map(potVal, 0 , 1023 , 60 , 400);
- Serial.print(potVal2);
- timebtw = (60000/potVal2);
- Serial.print("------");
- Serial.println(timebtw);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[met]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[met]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[met]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[met]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- delay(15);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[0]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[0]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[0]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[0]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- met = met + 1;
- delay(timebtw-15);
- potVal = analogRead(2);
- Serial.print(potVal);
- Serial.print("------");
- potVal2 = map(potVal, 0 , 1023 , 60 , 400);
- Serial.print(potVal2);
- timebtw = (60000/potVal2);
- Serial.print("------");
- Serial.println(timebtw);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[met]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[met]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[met]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[met]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- delay(15);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[0]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[0]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[0]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[0]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- met = met + 1;
- delay(timebtw-15);
- potVal = analogRead(2);
- Serial.print(potVal);
- Serial.print("------");
- potVal2 = map(potVal, 0 , 1023 , 60 , 400);
- Serial.print(potVal2);
- timebtw = (60000/potVal2);
- Serial.print("------");
- Serial.println(timebtw);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[met]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[met]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[met]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[met]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- delay(15);
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[0]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals4[0]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[0]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals4[0]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- met = 0;
- delay(timebtw-15);
- }
- break;
- */
- default:
- digitalWrite(ledPin1, HIGH);
- digitalWrite(ledPin2, LOW);
- digitalWrite(ledPin3, HIGH);
- buttonPushCounter = 0;
- /*
- for(int i=0; i <17; i++){
- if (buttonState == HIGH) {
- buttonPushCounter = 1;
- i = 16;
- }
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, MSBFIRST, (vals2[i]) >> 8);
- shiftOut(dataPin, clockPin, MSBFIRST, (vals2[i]));
- shiftOut(dataPin2, clockPin2, MSBFIRST, (vals2[i]) >> 8);
- shiftOut(dataPin2, clockPin2, MSBFIRST, (vals2[i]));
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- delay(65);
- }
- for(int i=16; i >0; i--){
- if (buttonState == HIGH) {
- buttonPushCounter = 1;
- i = 0;
- }
- digitalWrite(latchPin, LOW);
- digitalWrite(latchPin2, LOW);
- shiftOut(dataPin, clockPin, LSBFIRST, (vals2[i]));
- shiftOut(dataPin, clockPin, LSBFIRST, (vals2[i]) >> 8);
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals2[i]));
- shiftOut(dataPin2, clockPin2, LSBFIRST, (vals2[i]) >> 8);
- digitalWrite(latchPin, HIGH);
- digitalWrite(latchPin2, HIGH);
- delay(65);
- }
- */
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement