Slideshow:
Technical Notes and Sketches:
/******************************************************************************
SparkFun Spectrum Shield PWM Demo
Toni Klopfenstein @ SparkFun Electronics
December 2015
https://github.com/sparkfun/Spectrum_Shield
This sketch shows the basic functionality of the Spectrum Shield, working with a basic RGB LED Matrix.
.
Development environment specifics:
Developed in Arduino 1.6.
*********************************************************************************/
//Declare Spectrum Shield pin connections
#define STROBE 4
#define RESET 5
#define DC_One A0
#define DC_Two A1
//Define LED connections on the shield
int LED[] = {7, 8, 9, 10, 11, 12, 13};
//Define spectrum variables
int freq_amp;
int Frequencies_One[7];
int Frequencies_Two[7];
int i;
/********************Setup Loop*************************/
void setup() {
//Set LED pin configurations
for(i=0; i<7; i++)
{
pinMode(LED[i], OUTPUT);
digitalWrite(LED[i], LOW);
}
//Set Spectrum Shield pin configurations
pinMode(STROBE, OUTPUT);
pinMode(RESET, OUTPUT);
pinMode(DC_One, INPUT);
pinMode(DC_Two, INPUT);
digitalWrite(STROBE, HIGH);
digitalWrite(RESET, HIGH);
//Initialize Spectrum Analyzers
digitalWrite(STROBE, LOW);
delay(1);
digitalWrite(RESET, HIGH);
delay(1);
digitalWrite(STROBE, HIGH);
delay(1);
digitalWrite(STROBE, LOW);
delay(1);
digitalWrite(RESET, LOW);
}
/**************************Main Function Loop*****************************/
void loop() {
Read_Frequencies();
Graph_Frequencies();
delay(50);
}
/*******************Pull frequencies from Spectrum Shield********************/
void Read_Frequencies(){
//Read frequencies for each band
for (freq_amp = 0; freq_amp<7; freq_amp++)
{
Frequencies_One[freq_amp] = analogRead(DC_One);
Frequencies_Two[freq_amp] = analogRead(DC_Two);
digitalWrite(STROBE, HIGH);
delayMicroseconds(50);
digitalWrite(STROBE, LOW);
delayMicroseconds(50);
}
}
/*******************Light LEDs based on frequencies*****************************/
void Graph_Frequencies(){
for( i= 0; i<7; i++)
{
if(Frequencies_Two[i] > Frequencies_One[i]){
analogWrite(LED[i], Frequencies_Two[i]/4);
}
else{
analogWrite(LED[i], Frequencies_One[i]/4);
}
}
}
Analog filters:
No comments:
Post a Comment