#4. FSR
| Seriell monitor: platsen där du kan få Arduino att prata genom en seriell port :————-:|:—————————————-:
Den seriella monitorn låter oss få Arduino att prata. Eller mer exakt: att denna text skickas till den seriella monitorn. Den seriella monitorn visar denna text på din dator.
Först ansluter vi bara en Arduino:
Jag tycker att det här borde fungera :-)
| Den seriella bildskärmen går via USB-kabeln mellan Arduino till dator :————-:|:—————————————-:
\pagebreak
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println("Hallo");
delay(1000);
}
Serial.begin(9600); |
‘Bästa dator, låt Arduino prata med 9600 bitar per sekund’ |
Serial.print("Hej"); |
‘Bästa dator, låt Arduino säga ordet ‘Hej’’ |
Serial.println("Hej"); |
‘Bästa dator, låt Arduino säga ordet ‘Hej’ och starta en ny rad’ |
Serial.println
till Serial.print
. Vad ser du?Serial.begin(9600)
till Serial.begin(4800)
. Vad ser du? Varför?\pagebreak
Serial.println("Hello");
till Serial.println("Hello Ledge");
\pagebreak
| FSR betyder “Force Sensitive Resistance” :————-:|:—————————————-:
Först ansluter vi bara en FSR:
| Om det inte finns någon FSR, använd en LDR :————-:|:—————————————-:
\pagebreak
Med denna kod mäter vi värdet på FSR:
void setup()
{
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(A0));
delay(100);
}
Serial.println(analogRead(A0)) |
‘Bästa dator, visa värdet på stiftet A0 på den seriella monitorn’ |
Serial.println
till Serial.print
. Vad ser du?Serial.begin(9600)
till Serial.begin(4800)
. Vad ser du? Varför?A0
. Ja, ta bort kabeln mellan A0
och LDR.
Titta på den seriella monitorn. Vad ser du?| Motståndet mellan A0 och LDR kallas ett ‘Pull Down’-motstånd :————-:|:—————————————-:
\pagebreak
| Ett ‘Pull Down’-motstånd förhindrar en flytande ingång :————-:|:—————————————-:
| “Kraftkänsligt motstånd” betyder “Kraftberoende motstånd” :————-:|:—————————————-:
Nu ansluter vi även en LED:
\pagebreak
Nu ska vi få lysdioden att reagera på lysdioden:
void setup()
{
pinMode(A0, INPUT);
pinMode(13, OUTPUT);
}
void loop()
{
if (analogRead(A0) < 512)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
delay(100);
}
if (analogRead(A0) < 512) {} |
‘Bästa dator, om A0 läser mindre än 2,5 volt, sätt det inom parentes. |
512
? Vad händer om du sänker 512
?\pagebreak
512
ändras till en siffra som är för hög, kommer lampan alltid att lysa oavsett hur hårt/mjukt du trycker.
Om 512
ändras till ett för högt nummer kommer lampan alltid att vara släckt, oavsett hur hårt/mjukt du tryckersetup
-funktionen Serial.begin(9600);
,
i loop
-funktionen lägg till Serial.println(analogRead(A0));
. Värdet du kommer att se är
beroende på motstånd, FSR och situationSerial.println("ON");
i den första delen av if
-satsen.
Sätt Serial.println("OFF");
i den andra delen av if
-satsen.void setup()
{
pinMode(A0, INPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(A0));
if (analogRead(A0) < 512)
{
digitalWrite(13, HIGH);
Serial.println("AAN");
}
else
{
digitalWrite(13, LOW);
Serial.println("UIT");
}
delay(100);
}
\pagebreak
Nu ska vi få lysdioden att reagera på lysdioden. Denna gång dimper lysdioden.
void setup()
{
pinMode(A0, INPUT);
pinMode( 9, OUTPUT);
Serial.begin(9600);
}
void loop()
{
const int fsr_waarde = analogRead(A0);
Serial.print("FSR: ");
Serial.println(fsr_waarde);
const int led_waarde = map(fsr_waarde, 0, 1023, 0, 255);
Serial.print("LED: ");
Serial.println(led_waarde);
analogWrite(led_waarde, 9);
delay(100);
}
analogWrite( 0, 9) |
‘Bästa dator, stäng av stift 9’ |
analogWrite(128, 9) |
‘Bästa dator, vrid stift 9 till halvfullt’ |
analogWrite(255, 9) |
‘Bästa dator, slå på stift 9 fullt ut’ |
map(analogRead(A0),0,1023,0,255) |
‘Bästa dator, läs spänningen för A0 . Detta är ett värde från 0 till 1023. Konvertera det avlästa värdet mellan 0 och 255.’. |
\pagebreak
~
) före numret. Dessa är 3, 5, 6, 9, 10, 11.Anslut två lysdioder till stift 12 och 13. När FSR är i vila ska ingen lysdiod lysa. Om du trycker försiktigt på FSR, en LED tänds. Om du trycker hårt på FSR, två.
| Tips: använd två if
-satser
:————-:|:—————————————-:
\pagebreak
Siffrorna i “if”-satsen måste vara korrekt inställda.
void setup()
{
pinMode(A0, INPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(A0));
if (analogRead(A0) < 256)
{
digitalWrite(13, HIGH);
}
if (analogRead(A0) < 512)
{
digitalWrite(12, HIGH);
}
delay(100);
}
Du kan också få en LED att reagera på en FSR genom att bleka/dimma den
\pagebreak
analogWrite
, till exempel analogWrite(11, 255);
~
) bredvid deras nummer. På Arduino Uno är dessa stift 3, 5, 6, 9, 10 och 11analogWrite
kan du ge upp till 255, till exempel analogWrite(11, 255);
analogRead
kan du mäta upp till 1023/
.void setup()
{
pinMode(A0, INPUT);
pinMode(11, OUTPUT);
Serial.begin(9600);
}
void loop()
{
analogWrite(11, analogRead(A0) / 4);
delay(100);
}
analogWrite(11, analogRead(A0) / 4) |
‘Bästa dator, dämpa stift 11 till värdet av stift A0 (diva detta med fyra)’ |
\pagebreak
Om du inte har en vit LED, använd en annan färg.