Arduino Playground is read-only starting December 31st, 2018. For more info please look at this Forum Post

Потенциометър мембрана и Arduino променят яркостта на светодиод

SoftPot на SprectraSymbol е тънък потенциометър мембрана, който променя съпротивлението си от 100 ома до 10k ома ,в зависимост от това, къде върху лентата е натиснат. Трите пина, излизащи от сензора, са на разстояние от 2,54 mm, което го прави удобен за използване с бредборд.

За да се разбере, къде точно е натиснат, сензорът се свързва към захранващо напрежение и се отчита измененито му чрез аналогов вход на микроконтролер. В примера използваме сведодиод за да визуализираме това изменение.

Свързване

Крайните два пина на сензора се свързват към 5V напрежение от Arduino и към маса, а средният пин е към входа A0. Ако масата се подаде на пина, отбелязан със стрелка, напрежението на средния пин ще се увеличава с отиване към края на мембраната.

Съпротивлението в схемата на светодиода се изчислява според вида и яркостта му. Свързва се към анода на светодиода и към някой от цифровите изходи на Arduino, отбелязан с ~ пред номера. Катода се свързва към маса.

Код

/*

 * Управлява яркостта на светодиод чрез натиск върху мембрана

 Свързване:
 * Пинът на сензора, отбелязан със стрелка е към GND
 * Средният пин е към входа A0
 * Последният пин e към 5V на Arduino
 * Анода на светодиода се свързва през съпротивление към пин ~10
 * Катода е към маса

 * Tihomir Trifonov (07.2011)
 * с подкрепата на Robotev.com

 */

//////  пинове за вход и изход
const int analogInPin = A0;  // показва на кой пин е свързан сензора
const int analogOutPin = 10; // пин, който управлява светодиода

////// променливи, използвани в програмата 
int sensorValue = 0;        // съхранява стойността получена от сензора
int outputValue = 0;        // стойност, която ще се подаде на светодиода

void setup() {

}

void loop() { // програмен цикъл

  sensorValue = analogRead(analogInPin);  // прочита показанието на сензора                                      
  outputValue = map(sensorValue, 0, 1023, 0, 255);  //генерира изходен сигнал                                                        
                                                    // в зависимост от показанието
  analogWrite(analogOutPin, outputValue); // подава изходния сигнал към светодиода                     
}

Така свързан и програмиран сензора ще кара светодиода да свети по-силно, когато се натисне по далеко от началото.