среда, 13 апреля 2016 г.

Ардуино: меняем не только скорость передачи, но и длительность паузы.

Всем читателям моего блога привет! Спасибо что заходите в гости. Сегодня мы продолжим улучшать наш проект «Радиомаяк-2». В прошлый раз мы с помощью переменного резистора научились управлять скоростью передачи азбукой Морзе. Теперь давайте научимся управлять длительностью пауз в конце каждой передачи. Опять возникает вопрос а зачем? А вот для чего: после того как маяк отправил морзянкой сообщение, необходимо выдержать паузу длительностью от 1 минуты или больше. За это время «отдохнет» передатчик, вернее выходной транзистор (который может нагреваться) …

В общем дело нужное. Все что нам нужно сделать, так это немного изменить саму схему: ввести в нее еще один переменный резистор, и естественно немного изменить и сам скетч. Начнем со скетча. По сути код почти и не измениться: разве что только придется добавить еще одну строку кода, где будет вестись «считывание» данных со второго переменного резистора.

const int pot=0; // задаем А0 для потенциометраR1
const int pot1=1; // задаем А1 для потенциометра R2
float val=0; // задаем начальное значение переменной R1
float val1=0; // R2

void setup() {
  // put your setup code here, to run once:
pinMode (7, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
val=analogRead (pot); // чтение данных с R1
val1=analogRead (pot1); // чтение данных с R2
}

Но нам конечно же нужно не только считать данные с переменных резисторов R1 и R2, но так же немного преобразовать полученные данные. Для этого мы просто изменим немного строки скетча, где сразу же и произведем обработку этих данных.

int dot = 100; // длительность точки
int tir = 300; // длительность тире
int iedPin = 7; // звук на 7 пин
int pause = 600; // пауза знака
const int pot=0;
const int pot1=1;
float val=280;
float val1=1;
float vals=1;
void setup()
{
  pinMode (7, OUTPUT);
}

void loop()
{
   val=map (analogRead (pot),0,1024,160,350);
 vals=val/250;
 dot=100*vals;
 tir=300*vals;

  val1=map (analogRead (pot1),0,1024,1,10);
delay(1000*val1);
  }

В общем первую задачу мы выполнили. Готовый скетч вы можете взять с Яндекс диска: жми сюда!. Теперь осталось собрать схему. Вот когда уже появляется путаница проводов, и без схемы никуда. Попытался начертить схему в разных программах, нет, пока лучше, чем карандаш и бумага не нашел варианта. Надеюсь, что Вы смогли все правильно подключить. И тогда все получиться: можно управлять скоростью передачи и длинной пауз. А теперь вопрос для закрепления материала: что нужно изменить в скетче чтобы время паузы увеличить с 1 до 4 минут? Удачи!


Комментариев нет:

Отправить комментарий