Тема 2: ПОТЕНЦИОМЕТР

Потенциометр

Потенциометр — это электронный компонент, используемый для изменения электрического сопротивления и регулировки сигналов. Это тип изменяемого сопротивления, с помощью которого можно изменять ток или напряжение для достижения желаемого результата. Потенциометры широко используются в различных приложениях, включая аудиоустройства, регулировку освещения и другие электронные устройства.

Потенциометр обычно состоит из трех контактов: два из них соединены с резистором, а третий контакт подвижен, что позволяет регулировать сопротивление. При вращении подвижного контакта (также называемого щеткой) сопротивление изменяется, а значит, изменяется и выходной сигнал.

Существуют различные типы потенциометров, включая линейные и поворотные, которые отличаются принципом работы и областью применения. Эти компоненты незаменимы, так как позволяют пользователю регулировать работу устройства в соответствии с его пожеланиями и потребностями.

Эксперимент 2)

Использование потенциометра

Компоненты:

  • Плата Arduino UNO (1 шт.)
  • Макетная плата (1 шт.)
  • Провода (7 шт.)
  • Резистор (1 шт., 1 кОм)
  • Светодиод (1 шт., красный)

Схема подключения:
Сначала необходимо установить светодиод и потенциометр на макетную плату и соединить их с ардуино по схеме, изображённой на рисунке. Для регулировки скорости мигания светодиода используется потенциометр.

int sensorPin = 0;      
int ledPin = 13;                              
int sensorValue = 0;     
void setup()
{       
  pinMode(ledPin, OUTPUT);  
  Serial.begin(9600);
}
void loop() {              
  sensorValue = analogRead(sensorPin); //   loeb analoog sisendi väärtust ja saadab tagasi täisarvu vahemikus 0 kuni 1023. See tähendab 10 bitilist täpsust (2^10 = 1024).   
  digitalWrite(ledPin, HIGH);         
  delay(sensorValue);                 
  digitalWrite(ledPin, LOW);              
  delay(sensorValue);          
}

Praktiline töö 2 — Valguskett

Команды, которые здесь задействованы:

  1. int ledPin[6] = {13,12,11,10,9,8}; — Создание массива ledPin с шестью элементами и присвоение им пинов для управления светодиодами.
  2. int sensorValue = 0; — Объявление переменной sensorValue и присвоение ей значения 0.
  3. pinMode(ledPin[0], OUTPUT);, pinMode(ledPin[1], OUTPUT);, …, pinMode(ledPin[5], OUTPUT); — Настройка пинов массива ledPin на вывод данных.
  4. Serial.begin(9600); — Настройка последовательной связи для вывода данных через последовательный порт.
  5. int sensorPin = 0; — Объявление переменной sensorPin и присвоение ей значения 0.
  6. sensorValue = analogRead(sensorPin); — Считывание аналогового значения с пина, указанного в переменной sensorPin, и присвоение результата переменной sensorValue.
  7. sensorValue = map(sensorValue,0,1023,1,7); — Преобразование значения sensorValue из диапазона 0-1023 в диапазон 1-7.
  8. digitalWrite(ledPin[i], HIGH); и digitalWrite(ledPin[i], LOW); — Управление состоянием пинов массива ledPin для включения и выключения светодиодов.
  9. delay(250); — Пауза в программе на 250 миллисекунд.

Задание “Световая цепочка”

Описание работы

Компоненты:

  • Плата Arduino UNO (1 шт.)
  • Макетная плата (1 шт.)
  • Провода (11 шт.)
  • Резисторы (6 шт., 1 кОм)
  • Светодиоды (6 шт.: 2 красных, 2 зелёных, 2 синих)

Процесс работы:

int ledPin[6] = {13,12,11,10,9,8};
  
int sensorValue = 0;                      
  
void setup()
  
{       
  
  pinMode(ledPin[0], OUTPUT);  
  pinMode(ledPin[1], OUTPUT);
  pinMode(ledPin[2], OUTPUT);
  pinMode(ledPin[3], OUTPUT);
  pinMode(ledPin[4], OUTPUT);
  pinMode(ledPin[5], OUTPUT);
  Serial.begin(9600);
}
  
void loop() {  
  int sensorPin = 0; 
    
  sensorValue = analogRead(sensorPin);
    
  sensorValue = map(sensorValue,0,1023,1,7);
    
  if (sensorValue==1){
  
  digitalWrite(ledPin[0], HIGH);         
  
  delay(250);                 
  
  digitalWrite(ledPin[0], LOW);              
  
  delay(250);  
    
  digitalWrite(ledPin[1], HIGH);         
  
  delay(250);                 
  
  digitalWrite(ledPin[1], LOW);              
  
  delay(250);  
    
  digitalWrite(ledPin[2], HIGH);         
  
  delay(250);                 
  
  digitalWrite(ledPin[2], LOW);              
  
  delay(250);
    
  digitalWrite(ledPin[3], HIGH);         
  
  delay(250);                 
  
  digitalWrite(ledPin[3], LOW);              
  
  delay(250);  
    
  digitalWrite(ledPin[4], HIGH);         
  
  delay(250);                 
  
  digitalWrite(ledPin[4], LOW);              
  
  delay(250);  
    
  digitalWrite(ledPin[5], HIGH);         
  
  delay(250);                 
  
  digitalWrite(ledPin[5], LOW);              
  
  delay(250);
      
  } 
    
  else if (sensorValue==2) {
    digitalWrite(ledPin[0], HIGH);
    digitalWrite(ledPin[3], HIGH);         
    delay(250);                 
    digitalWrite(ledPin[0], LOW);
    digitalWrite(ledPin[3], LOW);              
    delay(250); 
    digitalWrite(ledPin[1], HIGH);
    digitalWrite(ledPin[4], HIGH);         
    delay(250);                 
    digitalWrite(ledPin[1], LOW);
    digitalWrite(ledPin[4], LOW);              
    delay(250); 
    digitalWrite(ledPin[2], HIGH);
    digitalWrite(ledPin[5], HIGH);         
    delay(250);                 
    digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[5], LOW);              
    delay(250);
  }
  else if (sensorValue==3) {
    int i = rand();
        int a=i%6;
    digitalWrite(ledPin[a], HIGH);         
    delay(250);                 
    digitalWrite(ledPin[a], LOW);              
    delay(250);  
  }
  else if (sensorValue==4) {
    digitalWrite(ledPin[0], HIGH);
    digitalWrite(ledPin[1], HIGH);
    digitalWrite(ledPin[2], HIGH);
    digitalWrite(ledPin[3], HIGH);
    digitalWrite(ledPin[4], HIGH);
    digitalWrite(ledPin[5], HIGH);
    delay(500); 
    digitalWrite(ledPin[0], LOW);
    digitalWrite(ledPin[1], LOW);
    digitalWrite(ledPin[2], LOW);
    digitalWrite(ledPin[3], LOW);
    digitalWrite(ledPin[4], LOW);
    digitalWrite(ledPin[5], LOW);
    delay(500); 
   
  }
   
  else if (sensorValue==5) {
    digitalWrite(ledPin[0], HIGH);
    digitalWrite(ledPin[5], HIGH);
    delay(250);
    digitalWrite(ledPin[0], LOW);
    digitalWrite(ledPin[5], LOW);
    delay(250); 
    digitalWrite(ledPin[1], HIGH);
    digitalWrite(ledPin[4], HIGH);
    delay(250); 
    digitalWrite(ledPin[1], LOW);
    digitalWrite(ledPin[4], LOW);
    delay(250); 
    digitalWrite(ledPin[2], HIGH);
    digitalWrite(ledPin[3], HIGH);
    delay(250);
    digitalWrite(ledPin[2], LOW);
    digitalWrite(ledPin[3], LOW);
    delay(250);
  }
   
   
  else if (sensorValue==6) {
    digitalWrite(ledPin[0], HIGH);
    delay(150);
    digitalWrite(ledPin[1], HIGH);
    digitalWrite(ledPin[0], LOW);
    delay(150);
    digitalWrite(ledPin[2], HIGH);
    digitalWrite(ledPin[1], LOW);
    delay(150);
    digitalWrite(ledPin[3], HIGH);
    digitalWrite(ledPin[2], LOW);
    delay(150);
    digitalWrite(ledPin[4], HIGH);
    digitalWrite(ledPin[3], LOW);
    delay(150);
    digitalWrite(ledPin[5], HIGH);
    digitalWrite(ledPin[4], LOW);
    delay(150);
    digitalWrite(ledPin[5], LOW);
  }