Part A. Making Sounds
a. How would you change the code to make the song play twice as fast?
I would change the array noteDurations[] to half of their values. Those number correspond to the time of each note played.
b. What song is playing? ;-)
The Star Wars Theme song
a. What voltage level do you need to power your display?
5V or 3.3V. -- I used 5V from the Arduino board.
b. What was one mistake you made when wiring up the display? How did you fix it?
I fortunately made no mistakes. I just double checked all the wiring before turning it up.
c. What line of code do you need to change to make it flash your name instead of "Hello World"?
lcd.print("hello, world!");
a. Post a copy of your new code in your lab writeup.
int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor
int brightness = 0;
void setup() {
pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT:
}
void loop() {
sensorValue = analogRead(sensorPin);
brightness = map(sensorValue, 0, 668, 0, 255);
analogWrite(ledPin, brightness);
delay(500);
}
a. What resistance do you see with a Multimeter when the sensor is flat? When it is bent?
Sensor flat: 10 kOhms
Sensor bent: 11.9 kOhms
b. What kind of voltages should we expect for the Arduino analog pin based on the sensor resistance?
Vanalog=(Rsensor/Rsensor+R)*Vin
Vin=3.3V and R=24Kohms
1) When the sensor is flat: Rsensor=9.5 kOhms
Vanalog=(24K/9.5K+24K)*3.3 --> Vanalog=02.36V
2)When the sensor is bent: Rsensor=11.9 kOhms
Vanalog=(24K/11.9K+24K)*3.3 --> Vanalog=2.2V
c. How does the range of the LED's brightness change compared to the potentiometer?
Since I used the function MAP() to make the LED output voltage from 0V to 5V both the potentiometer and the Flex sensor could turn off the LED and make it full brightness.
d. Include a copy of your Lowly Multimeter code in your lab write-up.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor
int brightness = 0;
void setup() {
pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT:
lcd.begin(16, 2);
lcd.display();
lcd.print("Res= ");
lcd.setCursor(7,0);
lcd.print("ohms");
}
void loop() {
sensorValue = analogRead(sensorPin);
lcd.setCursor(4,0);
lcd.print(sensorValue);
brightness = map(sensorValue, 280, 312, 0, 255);
brightness = constrain(brightness, 0, 255);
analogWrite(ledPin, brightness);
delay(300);
}
a. What resistance values do you see from your force sensor?
From 700ohms to 100Kohms
b. What kind of relationship does the resistance have as a function of force applied? (e.g., linear?)
Resistance drops linearly when force is applied.
c. Include a copy of your FSR thumb wrestling code in your lab write-up.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin1 = A0; // Reads the force sensor 1 on pin A0
int sensorPin2 = A1; // Reads the force sensor 2 on pin A1
int sensorValue1 = 0;
int sensorValue2 = 0;
void setup() {
lcd.begin(16, 2);
lcd.display(); //start and turn on the display
}
void loop() {
sensorValue1 = analogRead(sensorPin1); //read the sensors
sensorValue2 = analogRead(sensorPin2);
if(sensorValue1 > sensorValue2){
lcd.setCursor(0,0);
lcd.print("Player 1 is winning");
}
else if (sensorValue1==sensorValue2 || sensorValue1==sensorValue2*1.01 || sensorValue1==sensorValue2*0.99){
lcd.setCursor(0,0);
lcd.print("It is a tie");
}
//If none of the above:
else{
lcd.setCursor(0,0);
lcd.print("Player 2 is winning");
}
delay(300);
}