arduino - softpotentiometer + lite nybörjarfrågor
arduino - softpotentiometer + lite nybörjarfrågor
hej, jag är en kille på 16 år som är väldigt intresserad av elektronik. I julas fick jag ett arduino inventorskit från lawicel/sparkfun. Jag tänkte att man skulle kunna koppla in en liten högtalare som fanns med och softpotentiometern(kapacitiv touchsensor typ) för att göra ett enkelt instrument, som mitt första projekt. Tyvärr kan jag inte tänka ut hur det ska fungera eftersom potentiometern ger utslag även om man inte trycker på den. I denna videon ( har de gjort det på något sätt men jag förstår inte riktigt hur, att värdet blir högre pga. kretsen blir sluten när man inte trycker fattar jag men inte hur det är kopplat/fungerar. Om någon skulle kunna ta och förklara på en väldigt enkel nivå eller göra ett enkelt kopplingsschema vore jag väldigt tacksam. Sen använder de en 68k resistor men jag har bara 10k ohm och 330 ohms resistorer. tror ni att det skulle kunna funka om man använder en 10k oms resistor?
Sen tänkte jag också att det kunde vara kul med lite ideer om hur man kan gå vidare, vad är nästa steg? jag är väldigt sugen på att en dag bygga en fpv-quadropter en dag men förstår själv att kunskaperna och hårdvaran är bristfälliga för ett sådant projekt. Men det vore kul med lite enkla projekt för att lära sig basics! jag har redan grundläggande programmeringskunskap men är inget proffs än Fyi. (lite c, html, css, och ytterst lite java, javascript och php).
tacksam för svar!
izak3
Sen tänkte jag också att det kunde vara kul med lite ideer om hur man kan gå vidare, vad är nästa steg? jag är väldigt sugen på att en dag bygga en fpv-quadropter en dag men förstår själv att kunskaperna och hårdvaran är bristfälliga för ett sådant projekt. Men det vore kul med lite enkla projekt för att lära sig basics! jag har redan grundläggande programmeringskunskap men är inget proffs än Fyi. (lite c, html, css, och ytterst lite java, javascript och php).
tacksam för svar!
izak3
Re: arduino - softpotentiometer + lite nybörjarfrågor
Hallå och välkommen.
Innan du kan styra något med din softpot måste du ju ha någon idé om hur du skall skapa ljud till ditt instrument.
Din potentiometer är enbart ett variabelt motstånd och med dess hjälp kan du även skapa variabel spänning, men därifrån till att skapa ljud är det ett stort steg.
Med ditt inventorskit kom det väl en Arduino ?
Då är det ju lämpligt att du börjar titta lite på hur den programmeras.
Genom att koppla pinnarna i kanterna på din softpot till +5V och GND så kommer du få ett varierande volttal mellan 0V-5V på mittenpinnen.
Denna kan du koppla till en "analog input" på din Arduino och läsa av värdet.
Beroende på avläst värde kan du sedan generera ljud på en annan pinne som utgång.
Kommandona du behöver läsa på om är analogRead() och tone()
Posta gärna koden när du har en idé om hur den skall se ut.
Lycka till.
Innan du kan styra något med din softpot måste du ju ha någon idé om hur du skall skapa ljud till ditt instrument.
Din potentiometer är enbart ett variabelt motstånd och med dess hjälp kan du även skapa variabel spänning, men därifrån till att skapa ljud är det ett stort steg.
Med ditt inventorskit kom det väl en Arduino ?
Då är det ju lämpligt att du börjar titta lite på hur den programmeras.
Genom att koppla pinnarna i kanterna på din softpot till +5V och GND så kommer du få ett varierande volttal mellan 0V-5V på mittenpinnen.
Denna kan du koppla till en "analog input" på din Arduino och läsa av värdet.
Beroende på avläst värde kan du sedan generera ljud på en annan pinne som utgång.
Kommandona du behöver läsa på om är analogRead() och tone()
Posta gärna koden när du har en idé om hur den skall se ut.
Lycka till.
Re: arduino - softpotentiometer + lite nybörjarfrågor
ja precis! jag har faktiskt redan gjort en RGBLed som ändrar färg när man trycker(glömde skriva det men det fanns med en relativt bra guide i kitet som jag har gått igenom.) men grejen är den att när man inte trycker ger potentiometern ändå något konstigt utslag, vilket antagligen bara skulle medföra en massa oljud när man inte trycker på den om man kopplar in ett piezo element eller en högtalare.
Re: arduino - softpotentiometer + lite nybörjarfrågor
Kan inte va så att den analoga ingången ligger o flyter när den inte är inkopplad?
Re: arduino - softpotentiometer + lite nybörjarfrågor
Alltså det fungerar ju som en vanlig potentiometer så när man inte trycker på den så ger den något slags medelvärde skulle jag tro, det känns dock som att det är väldigt slumpmässigt utslag man får. I videon jag länkade har de kopplat ett motstånd till 5v och sedan till A0 tror jag men jag är inte riktigt säker. Den ska då när man inte trycker ge ett högre utslag än vad softpoten kan ge. Dock så frågar jag här för jag tänkte att det är någon som har ett mer säkert svar på hur det fungerar eftersom jag tyckte att de förklarade flummigt i filmen(jag vill ju helst inte förstöra arduinot). Sen har jag ju som sagt bara 10k ohms resistorer som mest, jag undrar om ni tror att det räcker?
Re: arduino - softpotentiometer + lite nybörjarfrågor
kläm på ett 10K motstånd mellan ingång och matningen så får du ju ett fast värde när du "kopplar" bort potten, sen får du ju definera i mjukvaran att det inte kommer nått ljud vid det värde om du nu vill att det ska va tyst när du släpper potten.
EDIT:
Eller så kan du ju köra flera resistorer i serie om du vill ha högre resistans.
EDIT:
Eller så kan du ju köra flera resistorer i serie om du vill ha högre resistans.
Re: arduino - softpotentiometer + lite nybörjarfrågor
nu har jag testat att sätta ett 10k ohms motstånd mot potentiometern och det räckte! nu använder jag mig av en simpel serial monitor kod för att få en hum om var de olika värdena ligger men den ligger stabilt på värdet ca 1023 när man inte trycker
. Jag återkommer när jag har gjort fler framsteg! tackar för hjälpen än så länge!

Re: arduino - softpotentiometer + lite nybörjarfrågor
Kul!
Serieporten är guld värd när man debuggar, då slipper man sitta o "gissa" vad som händer i controllern.
Serieporten är guld värd när man debuggar, då slipper man sitta o "gissa" vad som händer i controllern.
Re: arduino - softpotentiometer + lite nybörjarfrågor
hej igen! nu har jag stött på lite problem... skrev en väldigt basic code men när jag försöker kompilera får jag felmeddelanden:
SIMPLE_INSTRUMENT_UNFINISHED_.cpp:15:72: error: macro "constrain" requires 3 arguments, but only 2 given
SIMPLE_INSTRUMENT_UNFINISHED_.cpp: In function 'void loop()':
SIMPLE_INSTRUMENT_UNFINISHED_:11: error: 'constrain' was not declared in this scope
jag använder mig av koderna på http://www.arduino.cc/en/Tutorial/Melody för att få tonerna så registret går igenom en oktav... från c till c
SIMPLE_INSTRUMENT_UNFINISHED_.cpp:15:72: error: macro "constrain" requires 3 arguments, but only 2 given
SIMPLE_INSTRUMENT_UNFINISHED_.cpp: In function 'void loop()':
SIMPLE_INSTRUMENT_UNFINISHED_:11: error: 'constrain' was not declared in this scope
Kod: Markera allt
/* simple arduino music-instrument
-----------made by Izak3---------*/
int speakerPin = 9;
void setup(){
pinMode(speakerPin, OUTPUT);
}
void loop(){
int sensorValue = analogRead(0);
int toneValue = constrain(map(sensorValue, 0, 956, 1022, 1915)0, 1022);
if(sensorValue <= 1022){
digitalWrite(speakerPin, HIGH);
delayMicroseconds(toneValue);
} else {
}
}
Re: arduino - softpotentiometer + lite nybörjarfrågor
Du har glömt ett komma i constrain raden.
Ser du vart
Ser du vart

Re: arduino - softpotentiometer + lite nybörjarfrågor
jaha, whoops så kan det gå när man är ovan...
en softpotentiometer är en potentiometer som känner av var man trycker ned t.ex ett finger eller en styluspenna och ändrar då motstånd. Ungefär som en kapacitiv touch-skärm, dock kan man inte räkna ut fingrets exakta psition utan får endast ett värde mellan 0 och 1022 idetta fallet... tack för hjälpen btw!
EDIT: ny fråga: tror inte riktigt att jag förstår mig på constrain funktionen, nu ligger värdet på 1022 konstant vad jag än gör. Någon som har någon fundering på vad som är fel?

EDIT: ny fråga: tror inte riktigt att jag förstår mig på constrain funktionen, nu ligger värdet på 1022 konstant vad jag än gör. Någon som har någon fundering på vad som är fel?
Senast redigerad av izak3 26 januari 2012, 21:40:03, redigerad totalt 2 gånger.
Re: arduino - softpotentiometer + lite nybörjarfrågor
Constrain:
int nyttVärde = constrain(gammaltVärde, minimumGräns, maximumGräns);

int nyttVärde = constrain(gammaltVärde, minimumGräns, maximumGräns);

Re: arduino - softpotentiometer + lite nybörjarfrågor
izak3
Vad försöker du egentligen åstadkomma ?
Just nu säger du åt din arduino följande:
- Läs värdet
- Mappa om värdet 0 - 956 till skalan 1022 - 1915
- Begränsa värdet till lägst 0 och högst 1022
Som du ser så ger rad 2 ett minimi värde på 1022 och rad 3 säger att det inte får vara mer än 1022.
Så ditt resultat är ju rätt logiskt
Vad försöker du egentligen åstadkomma ?
Just nu säger du åt din arduino följande:
- Läs värdet
- Mappa om värdet 0 - 956 till skalan 1022 - 1915
- Begränsa värdet till lägst 0 och högst 1022
Som du ser så ger rad 2 ett minimi värde på 1022 och rad 3 säger att det inte får vara mer än 1022.
Så ditt resultat är ju rätt logiskt
