Initial commit including DiceRoller and VolumeMixer
This commit is contained in:
commit
98bffa2663
86
DiceRoller/DiceRoller.ino
Normal file
86
DiceRoller/DiceRoller.ino
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
|
||||||
|
|
||||||
|
int isGenerating = false;
|
||||||
|
|
||||||
|
//Connesso al Pin DS del 74HC595
|
||||||
|
int dataPin = 8;
|
||||||
|
//Connesso al Pin ST_CP del 74HC595
|
||||||
|
int latchPin = 9;
|
||||||
|
//Connesso al Pin SH_CP del 74HC595
|
||||||
|
int clockPin = 10;
|
||||||
|
|
||||||
|
int buttonPin = 12;
|
||||||
|
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
//configuriamo i 3 pin di output
|
||||||
|
pinMode(dataPin, OUTPUT);
|
||||||
|
pinMode(latchPin, OUTPUT);
|
||||||
|
pinMode(clockPin, OUTPUT);
|
||||||
|
|
||||||
|
pinMode(buttonPin, INPUT);
|
||||||
|
|
||||||
|
turnOnLeds(0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
|
||||||
|
if (!isGenerating)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (digitalRead(buttonPin) == HIGH)
|
||||||
|
{
|
||||||
|
isGenerating = true;
|
||||||
|
int wait = 10;
|
||||||
|
|
||||||
|
for (int i = 0; i <= 20; i++)
|
||||||
|
{
|
||||||
|
int rand = random(1, 7);
|
||||||
|
|
||||||
|
turnOnLeds(rand);
|
||||||
|
|
||||||
|
wait += 10;
|
||||||
|
|
||||||
|
delay(wait);
|
||||||
|
}
|
||||||
|
|
||||||
|
isGenerating = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void turnOnLeds(int howMany)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < 7 - howMany; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
digitalWrite(clockPin, 0); //mi assicuro che clock si LOW
|
||||||
|
digitalWrite(latchPin, 0); //abbasso il latch per iniziare a programmare il 74HC595
|
||||||
|
|
||||||
|
digitalWrite(dataPin, 0); // abbasso il pin data
|
||||||
|
digitalWrite(clockPin, 1); //alzo il clock -> abbiamo "spinto" il valore 1 nel primo registro del 74HC595.
|
||||||
|
|
||||||
|
digitalWrite(dataPin, 0); //rimetto a zero il data pin e clock pin per non portare valori HIGH oltre questo punto.
|
||||||
|
digitalWrite(clockPin, 0); //rimetto a zero il clock pin.
|
||||||
|
|
||||||
|
digitalWrite(latchPin, 1); //latch HIGH per confermare gli output.
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int j = 0; j < howMany; j++) {
|
||||||
|
digitalWrite(clockPin, 0); //mi assicuro che clock si LOW
|
||||||
|
digitalWrite(latchPin, 0); //abbasso il latch per iniziare a programmare il 74HC595
|
||||||
|
|
||||||
|
digitalWrite(dataPin, 1); // alzo il pin data
|
||||||
|
digitalWrite(clockPin, 1); //alzo il clock -> abbiamo "spinto" il valore 1 nel primo registro del 74HC595.
|
||||||
|
|
||||||
|
digitalWrite(dataPin, 0); //rimetto a zero il data pin e clock pin per non portare valori HIGH oltre questo punto.
|
||||||
|
digitalWrite(clockPin, 0); //rimetto a zero il clock pin.
|
||||||
|
|
||||||
|
digitalWrite(latchPin, 1); //latch HIGH per confermare gli output.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
99
VolumeMixer/VolumeMixer.ino
Normal file
99
VolumeMixer/VolumeMixer.ino
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
|
||||||
|
int vol0, vol1, vol2, vol3, vol4;
|
||||||
|
|
||||||
|
int changeRange = 20;
|
||||||
|
|
||||||
|
int red = 9;
|
||||||
|
int green = 10;
|
||||||
|
int blue = 11;
|
||||||
|
|
||||||
|
|
||||||
|
// The setup() function runs once each time the micro-controller starts
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
|
||||||
|
pinMode(A0, INPUT);
|
||||||
|
pinMode(A1, INPUT);
|
||||||
|
pinMode(A2, INPUT);
|
||||||
|
pinMode(A3, INPUT);
|
||||||
|
pinMode(A4, INPUT);
|
||||||
|
|
||||||
|
|
||||||
|
pinMode(9, OUTPUT);
|
||||||
|
pinMode(10, OUTPUT);
|
||||||
|
pinMode(11, OUTPUT);
|
||||||
|
|
||||||
|
|
||||||
|
Serial.begin(4800);
|
||||||
|
|
||||||
|
while (!Serial);
|
||||||
|
Serial.println();
|
||||||
|
Serial.println("OK");
|
||||||
|
Serial.flush();
|
||||||
|
|
||||||
|
|
||||||
|
vol0 = analogRead(A0);
|
||||||
|
vol1 = analogRead(A1);
|
||||||
|
vol2 = analogRead(A2);
|
||||||
|
vol3 = analogRead(A3);
|
||||||
|
vol4 = analogRead(A4);
|
||||||
|
|
||||||
|
analogWrite(red, 180);
|
||||||
|
analogWrite(green, 0);
|
||||||
|
analogWrite(blue, 200);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the main program code into the continuous loop() function
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
delay(400);
|
||||||
|
|
||||||
|
int pot0 = analogRead(A0);
|
||||||
|
int pot1 = analogRead(A1);
|
||||||
|
int pot2 = analogRead(A2);
|
||||||
|
int pot3 = analogRead(A3);
|
||||||
|
int pot4 = analogRead(A4);
|
||||||
|
|
||||||
|
if (shouldChangeVolume(vol0, pot0))
|
||||||
|
{
|
||||||
|
Serial.print("NUOVO VALORE 0: ");
|
||||||
|
Serial.println(pot0);
|
||||||
|
vol0 = pot0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shouldChangeVolume(vol1, pot1))
|
||||||
|
{
|
||||||
|
Serial.print("NUOVO VALORE 1: ");
|
||||||
|
Serial.println(pot1);
|
||||||
|
vol1 = pot1;
|
||||||
|
}
|
||||||
|
if (shouldChangeVolume(vol2, pot2))
|
||||||
|
{
|
||||||
|
Serial.print("NUOVO VALORE 2: ");
|
||||||
|
Serial.println(pot2);
|
||||||
|
vol2 = pot2;
|
||||||
|
}
|
||||||
|
if (shouldChangeVolume(vol3, pot3))
|
||||||
|
{
|
||||||
|
Serial.print("NUOVO VALORE 3: ");
|
||||||
|
Serial.println(pot3);
|
||||||
|
vol3 = pot3;
|
||||||
|
}
|
||||||
|
if (shouldChangeVolume(vol4, pot4))
|
||||||
|
{
|
||||||
|
Serial.print("NUOVO VALORE 4: ");
|
||||||
|
Serial.println(pot4);
|
||||||
|
vol4 = pot4;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean shouldChangeVolume(int oldValue, int newValue)
|
||||||
|
{
|
||||||
|
|
||||||
|
int diff = oldValue - newValue;
|
||||||
|
|
||||||
|
if (diff < -changeRange || diff > changeRange) return true;
|
||||||
|
return false;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user