Arduino из Atmega328 +USBAsp

Обсуждаем контроллеры компании Atmel.
Ответить
Собутыльник Кота
Аватара пользователя
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Сообщение olegue »

Задумал изготовить сабж. Просто Arduno Uno под синтезатор счас занята и не захотел разбирать.
Собрал. Да что там собирать. Кварц подкинул, разьем для программирования распаял,да светодиод на csk. Подключил это все через UsbAsp, залил загрузчик, попробовал скетч Blink - работает.
ЦЕль был с радиопульта от люстры прочитать коды, ну а дальше по ситуации.
ЗАгрузил библиотеку RemoteSwitch, скетч

Короче, как дошло до посмотреть коды, Монитор Компорта не вызывается. Посмотрел, ну да, откуда ж ему взяться.
думал может виртуальные заведу и пойдет. Неа, не прокатило.

Я уже дисплей решил подвесить, но все же думаю, а че нету возможности у ардуины куда еще вывести?
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1405
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

[uquote="olegue",url="/forum/viewtopic.php?p=3884161#p3884161"]...как дошло до посмотреть коды, Монитор Компорта не вызывается.[/uquote]
Флейтой его нужно вызывать. Своей.) USB-UART называется.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15595
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

В принципе у "стандартной" адуринки (UNO, nano, pro-mini) там два канала - стандартный по умолчанию (аппаратный на Rx/Tx лапки, он же и бутлоадер при включении обеспечивает) и софтовый на любую комбинацию выводов - SoftwareSerial...
Цепляем на те линии преобразователь ТТЛ -->> СОМ (или ТТЛ -->> USB) и работаем через него...
:roll:
Собутыльник Кота
Аватара пользователя
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Сообщение olegue »

заморочился . Поставил 1602 экран . I2C у меня не было поэтому распиновал его обычном способом, заняв приличное число выводов

Так как RemoteSwitch опрашивает INT0 (pin2) пришлось пины экрана 2, 3 перебросить на 7, 6. Заодно и INT1 (Pin3) тоже освободил.

Код: Выделить всё

/*
 The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin  6(3)
 * LCD D7 pin to digital pin 7(2)
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

// include the library code:
#include <LiquidCrystal.h>
#include <RemoteReceiver.h>
// initialize the library with the numbers of the interface pins
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LiquidCrystal lcd(12, 11, 5, 4, 6, 7);


void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
 //Connect the receiver to digital pin 2.-пин 2.это вход для Радиоприёмника
  RemoteReceiver::init(0, 3, showCode);
  pinMode(8, OUTPUT);
  pinMode(13, OUTPUT);
}

void showCode(unsigned long receivedCode, unsigned int period) {  
  lcd.clear();
  lcd.print(":");
  lcd.print(receivedCode);
  lcd.print(",p:");
  lcd.print(period);
  lcd.println("");
  // обработка нажатия первая кнопка
   // код такой то (если включено - выключить, иначе включить)
   if (receivedCode==48465) 
   {  
    if (digitalRead(8)== HIGH)  {   digitalWrite(8, LOW);}
      else
      {   digitalWrite(8, HIGH);}
   }
  // обработка нажатия вторая кнопка   
   // код такой то (если включено - выключить, иначе включить)   
    if (receivedCode==48447) 
   {  
    if (digitalRead(13)== HIGH)  {   digitalWrite(13, LOW);}
      else
      {   digitalWrite(13, HIGH);}
   }
  
} 

void loop() {

 
}


как я понял все делается в процедуре обрабатывающей прерывания showCode. loop() -не используется.

Изображение

Добавлено after 3 minutes 20 seconds:
Безо всяких заморочек эту задачу можно было реализовать на микрухах
pt2272
sc2272
просто задав в них соответсвующих код. И обошлось бы дешевле. На али 1.5 у.е за 10 шт. И такая я же цена за 1 шт Атмега 328
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «AVR»