1. Контроллер своими руками

<< 123 5678910 >>

Посетитель





78 2
Palestinian Territory Ramallah
5 г. назад
1. Контроллер своими руками
В данной теме я постараюсь изложить материал так, чтобы он был доступен самому неопытному в части электроники и программирования пользователю.
Позже тема будет развиваться. В итоге я расскажу как изготовить устройство, которое по своим характеристикам не уступает тому, что можно преобрести в готовом исполнении. Точнее в готовом ничего даже близко подходящего Вы не найдете.

В качестве платформы будем использовать Arduino. Это устройство может работать как автономно (запитав его любым адаптером 7-12V или батарейкой), так и подключенным к компьютеру. Имеет 20 цифровых вводов/выводов, 6 из которых могут быть использованы как аналого-цифровые преобразователи, еще 6 могут работать в режиме широтно-импульсной модуляции. Встроенные интерфейсы I2C и SPI. И много чего еще. Более подробно: http://arduino.ru/Hardware/ArduinoBoardUno. Такая организация позволяет подключить к Arduino практически любое электронное приспособление. Простой язык программирования и наличие в сети готовых библиотек для популярных устройств позволяет без труда реализовать на базе Arduino любой проект.

Грубо говоря, до знакомства с Arduino мои знания в электроние ограничивались законом Ома. Через пару часов после приобретения я уже реализовывал простые проекты, а еще через пару дней террариум был оборудован контроллером.

Что нам понадобиться:
1. Контроллер Ардуино. Arduino на E-bay
Вариант Nano удобнее всего использовать в итоговом устройстве (стоит около 450р, есть варианты и дешевле, но по USB они напрямую не подключаются, поэтому лучше немного переплатить, и использовать более удобное). Для прототипирования лучше использовать UNO (цена ~600р)
2. Датчик влажности и температуры. Датчики DHT* на E-bay
Цена от 100р в зависимости от точности. Желательно использовать DHT21 или DHT22. У DHT11 погрешность измерения температуры +-2 градуса, что существенно.
3. Релейный модуль. Релейный модуль (цена от 100р)
Такие модули бывают от 1, 2, 4, 8 до 16 (видел и 32 для маньяков) выводов, т.е. чем больше устройств надо заюзають, тем больше модуль.
4. Резистор на 10 kOm 1шт. Купить можно в ближайшем магазине радиодеталей. Цена 3р (не в ближайшем 60коп ).
5. Провода. Удобные шнуры для датчика и соединений.

Не буду рассказывать об Arduino. Вот ссылка, где о нем есть несколько статей Амперка, которые позволят быстро подружить это устройство с компьютером (см. видео Первые шаги). Кстати кто не хочет связываться с E-bay по тем или иным причинам, практически все причендалы можно купить в их интернет магазине (не сочтите за рекламу).
Но поверьте, в покупках на E-bay нет ничего сложного. Правда ждать посылку придется около месяца, но зато бюджет устройства будет в разы меньше.

Так же нам понадобится библиотека для работы с датчиком, взять ее можно здесь: https://github.com/adafruit/DHT-sensor-library. Папку поместить в каталог libraries\ установленной программы Arduino

Вот прототип (его я собрал и запрограммировал за 5 минут из того, что валялось под рукой):


Подключение датчика (Подробно тут):
1-й пин датчика подключаем к 5v от Arduino
2-й пин датчика к 8-му (или любому понравившимуся) пину Arduino. Так же через резистро 10 кOm этот пин надо подтянуть к 5v.
3-й никуда не подключаем.
4-й пин к Земле.

Подлюкчаем Реле (все еще проще чем с датчиком).
1. Соединяем с питанием. На модуле будет указано, какой пин отвечает за 5v (VCC) и Землю (GND)
2. Цифровые пины Arduino подключаем к управляющим пинам модуля (In1, In2 и т.д.). В данном случае к 6 и 7.

Железо готово! Через реле подлючаем необходимые устройства и доставляем радость животному.


Мы использовали всего 3 из 18-ти возможных управляющих пинов. Это значит, что мы уже знаем как к тому же самому контроллеру подлючить еще 5 террариумов с независимым управлением (обладая более углубленными знаниями мы бы знали, как подлючить еще не один десяток...).

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

#include <DHT.h> // Подключаем библиотеку для работы с датчиком

#define DHTPIN 8 // Считывающий пин с датчика
#define DHTTYPE DHT11 // Модель датчика
#define tPIN 7 // Пин управления температурой
#define hPIN 6 // Пин управления влажностью

DHT dht(DHTPIN, DHTTYPE); // Создаем объект dht

int tStatus = HIGH; // определяем переменную, отвечающую за состоянеие нагревателя HIGH=выкл, LOW=вкл
int temp = 28; // Желаемая температура в градусах Цельсия (изменить на нужную)
int hStatus = HIGH; // определяем переменную, отвечающую за состоянеие увлажнителя HIGH=выкл, LOW=вкл
int hum = 45; // Желаемая влажность (изменить на нужную)

void setup() // инициализация основных данных
{
Serial.begin(9600); // Инициализируем COM-порт
dht.begin(); // Инициализируем датчик
pinMode(tPIN, OUTPUT); // Определяем пин для управления температурой как Вывод
digitalWrite(tPIN, tStatus); // Притягиваем пин к начальному статусу (Выкл)
}

void loop() // зацикливание (код управляющей программы)
{
int h = dht.readHumidity(); // Считываем влажность
int t = dht.readTemperature(); // Считываем температуру
tStatus = (t < temp) ? LOW:HIGH; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл
digitalWrite(tPIN, tStatus);
if (h < hum) hStatus = LOW; else hStatus = HIGH; // Если влажность меньше желаемой, то статус увлажнителя=Вкл, в противном случае Выкл
digitalWrite(hPIN, hStatus);
delay(1000); // Задержка в 1 секунду
Serial.print("t="); Serial.print(t); Serial.print(" h="); Serial.println(h); // Отправляем информацю о климате на COM-порт
}


Примечание (бонус ). При подключении к компютеру с COM порта можно будет считать информацию о температуре и влажности в цифрах. В самой программе Arduino можно открыть COM-монитор с помощью меню Tools/Serial Monitor и с периодичность в 1 сек будет обновляться инфа о температуре и влажности

Итого: Мы потратили около 700р. Получив контроллер с возможностью расширения до 6 терров. Устройство работает как подключенное к компьютеру, так и без него при наличии питания.

Если тема будет интересна то:
1. В следующий раз я расскажу, как наше устойство "научить" работать со времененем. И в зависимости от времени суток менять характеристики климата, а так же к реле подключить Освещение, которое будет включаться утром и выключаться вечером (если у Вас останутся свободные каналы...).
2. И по нарастающей... LCD-Дисплей с информацией; эффект рассвета и заката; управление с пульта ДУ, ПК или сенсорной панели; использование транзисторов вместо реле для устройств работающих от малого постоянного тока; и пр.

С вопросами и пожеланиями не стесняемся. Кому интересно, помогу чем смогу.

Изменено 27-4-2012 автор CiberRus
2012-03-26 добавлено 26/03/2012 13:37:26#365640
Нравится DragonNagaina

Посетитель





65
10 г. назад
Если не трудно скинте на почту aleksjet@gmail.com библиотеки с которыми работает ваш контроллер
Кручу железки и так и сяк но как доходит дело до часов и дисплея одни проблемы ни одна скачаная в нете библиотека не работает
при компиляции выкидывает одни ошибки о которых не писал выше
Пробовал разные версии программ по совету CiberRus
но что то ничего не выходит
2012-11-08 добавлено 08/11/2012 20:09:24#386653

Посетитель





65
10 г. назад
И еще вопрос как правильно подключить LCD Через сдвиговый регистр к каким пинам и что нужно поправить в скетче

Изменено 8-11-2012 автор aleksjet
2012-11-08 добавлено 08/11/2012 20:09:47#386654

Новенький





46
Russian Federation Kazan
5 г. назад
aleksjet


Я подключил с поправками CiberRus так:




Вот работающий у меня скетч:

#include <DHT.h> // Подключаем библиотеку для работы с датчиком
#include <DS1307.h> // Подключаем библиотеку управления модулем реального времени
#include <LiquidCrystalExt.h> // Подключаем библиотеку управления экраном
#include <LineDriver.h> // Далее вспомогательные библиотеки для реализации интерфейса SPI
#include <SPI.h>
#include <SPI_Bus.h>
#include <Wire.h>

//#include <LiquidCrystal.h> // Подключаем стандартную библиотеку управления экраном

#define DHTPIN 9 // Считывающий пин с датчика
#define DHTTYPE DHT22 // Модель датчика
#define tPIN 7 // Пин управления температурой
#define hPIN 6 // Пин управления влажностью
#define lPIN 5 // Пин управления светом
#define sdPIN 3 // Пин управления светодиодной лентой

DHT dht(DHTPIN, DHTTYPE); // Создаем объект dht

int tStatus = HIGH; // определяем переменную, отвечающую за состоянеие нагревателя HIGH=выкл, LOW=вкл
int tempDay = 28; // Желаемая дневная температура в градусах Цельсия
int tempNight = 25; // Желаемая ночная температура в градусах Цельсия
int hStatus = HIGH; // определяем переменную, отвечающую за состоянеие увлажнителя HIGH=выкл, LOW=вкл
int humDay = 45; // Желаемая дневная влажность
int humNight = 40; // Желаемая ночная влажность

SPI_Bus shreg(_8bit, 10); // Подключаем сдвиговый регистр
LiquidCrystal lcd(1, 2, 3, 4, 5, 6, &shreg, 7); // Инициализируем дисплей

//LiquidCrystal lcd(12, 11, 10, 9, 4, 2); // Инициализируем дисплей

void setup() // инициализация основных данных
{
Serial.begin(9600); // Инициализируем COM-порт
dht.begin(); // Инициализируем датчик
pinMode(tPIN, OUTPUT); // Определяем пин для управления температурой как Вывод
pinMode(hPIN, OUTPUT);
pinMode(lPIN, OUTPUT);
lcd.begin(16,2); // устанавливаем размеры экрана
//lcd.backlight(true); // Указываем использование подсветки экрана
}

void loop() // зацикливание (код управляющей программы)
{
if (Serial.available() > 0) SetTime(); // Если на COM-порт поступила информация, то изменим системное время
float h = dht.readHumidity(); // Считываем влажность
float t = dht.readTemperature(); // Считываем температуру
int Hour = RTC.get(DS1307_HR,true); // Получаем значение текущего часа
int Minute = RTC.get(DS1307_MIN,false);
int Second = RTC.get(DS1307_SEC,false);
boolean Day = (Hour >= 8 & Hour <20); // Если текущий час находится в промежутке от 8 до 20, то действуют дневные параметры
tStatus = (t < ((Day) ? tempDay : tempNight)) ? LOW:HIGH; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл
//Relay.lineWrite(tPIN, tStatus);
digitalWrite(tPIN, tStatus);
if (h < ((Day) ? humDay : humNight)) hStatus = LOW; else hStatus = HIGH; // Если влажность меньше желаемой, то статус увлажнителя=Вкл, в противном случае Выкл
digitalWrite(hPIN, hStatus);
digitalWrite(lPIN, (Day) ? LOW:HIGH); // Если дневное время, то включим подсветку
switch(Hour) // в зависимости от времени меняем яркость светодиодной ленты
{
case 7:analogWrite(sdPIN, map(Minute, 0, 59, 0, 255)); break;
case 20:analogWrite(sdPIN, map(Minute, 0, 59, 255, 0)); break;
default:analogWrite(sdPIN, (Day) ? 255:0);
}
lcd.setCursor(1,0); // устанавливаем позицию курсора на экране (на один символ правее левого верхнего угла)
lcd.print(t, 1); lcd.print("C "); lcd.print(h, 1); lcd.print("% "); // Выводим информацию о климате
lcd.setCursor(4,1); // устанавливаем курсор для вывода времени
lcd.print(addZero(Hour));lcd.print(":");lcd.print(addZero(Minute));lcd.print(":");lcd.println(addZero(Second)+ " "); // Выводим время
lcd.setCursor(1,1);lcd.print((tStatus == LOW) ? "+":" "); // Выводим индикатор работы подогрева
lcd.setCursor(13,1);lcd.print((hStatus == LOW) ? "+":" "); // Выводим индикатор работы увлажнения
delay(500); // Задержка в пол секунды
}

void SetTime() // установка времени из шаблона tчч:мм
{
if (Serial.read() == 't' // Если первый символ t, то установим указанное время
{
int h = (Serial.read() - '0' * 10 + (Serial.read() - '0';
Serial.read();
int m = (Serial.read() - '0' * 10 + (Serial.read() - '0';
RTC.stop();
RTC.set(DS1307_SEC,0); //set the seconds
RTC.set(DS1307_MIN,m); //set the minutes
RTC.set(DS1307_HR,h); //set the hours
RTC.start();
}
Serial.flush();
}

String addZero(int val)
{
if (val<10) return "0" + String(val);else return String(val);
}

Этот скетч выложил CiberRus , я только изменил вход датчика с 8-го пина на 9-й т.к. у меня на Ардуинке 8-й оказался не рабочим.
И временно закоментировал подсветку,займусь ей позже.

Кстати там видно какие подключаются библиотеки.
Где их брать - CiberRus дал ссылки.
Все делал сразу в версии IDE 0.23
2012-11-08 добавлено 08/11/2012 23:15:27#386698

Посетитель





65
10 г. назад
Спасибо буду пробовать
2012-11-09 добавлено 09/11/2012 19:38:50#386784

Новенький





46
Russian Federation Saint Petersburg
5 г. назад
CiberRus


Доброе утро.

Мне очень понравилась озвученная Вами возможность использования чипа без Ардуинки, тем более и плата неисправная.
Присмотрел на eBay вот такой "USBtinyISP AVR ISP Programmer Arduino bootloader"




Если приобрести данный девайс будет проще залить загрузчик?
Да и на макетке с её не очень хорошими контактами ничего городить не надо будет.
2012-11-11 добавлено 11/11/2012 08:09:32#386894

Посетитель





78 2
Russian Federation Moscow
5 г. назад
сообщение Rust
Присмотрел на eBay вот такой "USBtinyISP AVR ISP Programmer Arduino bootloader"

Если приобрести данный девайс будет проще залить загрузчик?
Да и на макетке с её не очень хорошими контактами ничего городить не надо будет.


Если Вы заказали чипы с указанием "with arduino UNO bootloader", то в них уже прошит загрузчик UNO, и заливать его туда повторно нет необходимости.
Даже если его там нет, или необходим другой, то прошивать чип необходимо однажды, и мне не показалось это сложным с помощью arduino. Тем более есть подробная информация на официальном сайте.
Чтобы прошить чип, от макетки требуется обеспечить всего 8 контактов. Какая бы она некачественная не была, вероятность того, что с нескольких попыток она не справится с данной задачей стремится к 0.
Мое мнение: ради однократного применения при имеющейся в наличии альтернативы необходимость в приобретении программатора не имеет смысла.

Изменено 11-11-2012 автор CiberRus
2012-11-11 добавлено 11/11/2012 12:06:04#386908

Новенький





46
Russian Federation Kazan
5 г. назад
CiberRus


Спасибо.
В том-то и дело,что я заказал просто чипы. А уж потом увидел,что можно заказать "with arduino UNO bootloader.

Прошивать чип необходимо однажды - это я хорошо понял. Тогда возникает вопрос, используя только чип прошитым определенным скетчем - если в нем (скетче) необходимо поменять какие-то заданные параметры, время или температуру, я это могу сделать теперь только кнопками войдя в какое-то меню использую эту самую ограниченную память чипа,так? А, чтобы не трогать память я должен изменить эти параметры в скетче и снова залить через Ардуинку?
2012-11-11 добавлено 11/11/2012 15:13:36#386925

Посетитель





78 2
Palestinian Territory Ramallah
5 г. назад
сообщение Rust
CiberRus


Спасибо.
В том-то и дело,что я заказал просто чипы. А уж потом увидел,что можно заказать "with arduino UNO bootloader.

Прошивать чип необходимо однажды - это я хорошо понял. Тогда возникает вопрос, используя только чип прошитым определенным скетчем - если в нем (скетче) необходимо поменять какие-то заданные параметры, время или температуру, я это могу сделать теперь только кнопками войдя в какое-то меню использую эту самую ограниченную память чипа,так? А, чтобы не трогать память я должен изменить эти параметры в скетче и снова залить через Ардуинку?


Я кстати специально дал ссылку на чипы в которых уже есть загрузчик. Чтобы рядовой пользователь не мучался с бутлоадером.

По протоколу ISP (11,12,13 пин) можно прошить МК, делается это один раз. Грубо говоря бутлоадер "учит" чип воспринимать скетч в нужном нам формате, а так же настраивает необходимые параметры на низком уровне. Подробно это описано по ссылке, которую я уже указывал (фото 1 или 3)
http://arduino.cc/en/Tutorial/ArduinoToBreadboard
Если изучить статью по ссылке и провести пару опытов, то все вопросы отпадут сами собой.

Скетч загружается в память чипа через последовательный порт RX/TX (0,1 пин). Причем найденный Вами программатор для данной функции не подходит, во всяком случае в описании этого не заявлено. Чтобы иметь возможность вносить корректировки в скетч, необходимо предусмотреть вывод контактов (Reset, RX, TX, 5v, GND):

Можно внутри (как на фото); а можно вывести наружу, если предполагается частое внесение изменений.
Загружать скетч можно с помощью arduino (по той же ссылке, фото 2 или 4), или с помощью COM порта, или через переходник "USB to RS232".

Не бойтесь трогать память EEPROM. У нее 100000 циклов перезаписи. Это означает, что ее нельзя активно использовать, но нет причин ее жалеть в случае хранения изменяемых параметров. (Даже если Вы будете менять параметры 3 раза в день, то 100000/(3*365)>91год: Вам хватит ее без малого на 100 лет. К тому же в нашем распоряжении 1024 ячейки, испортив 2 из них можно перейти на новые и так 500 раз)
2012-11-12 добавлено 12/11/2012 09:49:14#387001

Новенький





46
Russian Federation Kazan
5 г. назад
CiberRus


Спасибо,за Ваше терпеливые наставления и примеры реализации тех или иных решений. Без них никогда бы не смог сделать даже той маленькой части,которая пока реализована у меня. Но самое сложное впереди,как я понял.

Сегодня, пока валялся под системами(приболел),начал изучать кнопки. Понял,что надо еще долго читать.
Зато после больницы прикупил все для прошивки по схеме №1. Если все завтра сложиться нормально,поробую прошить.
Только за рабочую плату боюсь, вдруг спалю. А через не рабочую наверное делать это бесполезно? Хотя она какая-то полудохлая.

Скетч конечно же не будет часто перезаливаться,поэтому контакты будут внутренние, как сделано у Вас на плате. Кстати на модуле 1307 я не заметил резисторов,только кварц и батарейка. Почему такая схема? Или у Вас SMD на другой стороне?
Вы написали,что - загружать скетч можно с помощью arduino (по той же ссылке, фото 2 или 4), или с помощью COM порта, или через переходник "USB to RS232". Мне в свое время достался и до сих пор валялся вот такой переходник



Значит его можно использовать для заливки скетча без платы Ардуино.Только бы в чип был залит загрузчик.Так? Интересно почему там RXD и TXD соеденены перемычкой?

Что касается памяти,то я боюсь её забить во время обучения.Ведь тренироваться-то с кнопками и меню, мне придется на ней. Сразу ведь написать рабочий кусок скетча не получиться. А учится придется долго,я чувствую.Еще ведь надо будет все эти корректировки параметров научиться выводить на экран.

P.S. Разъемчики у Вас на плате отличные.Не встречались такие.Где можно посмотреть?

Изменено 12-11-2012 автор Rust
2012-11-12 добавлено 13/11/2012 00:49:53#387135

Посетитель





65
10 г. назад
сообщение Rust
CiberRus





Значит его можно использовать для заливки скетча без платы Ардуино.Только бы в чип был залит загрузчик.Так? Интересно почему там RXD и TXD соеденены перемычкой?

Изменено 12-11-2012 автор Rust


По поводу перемычек это просто в качестве теста программатора

http://easyelectroni...
посмотрите этот документ у меня тоже на плате были замкнуты контакты но это только для проверки связи компа и программатора
На сколько я понимаю там микросхема FDTI ?
2012-11-13 добавлено 13/11/2012 08:36:48#387139

Посетитель





78 2
Palestinian Territory Ramallah
5 г. назад
сообщение Rust
Кстати на модуле 1307 я не заметил резисторов,только кварц и батарейка. Почему такая схема? Или у Вас SMD на другой стороне?

Резисторы и конденсаторы SMD на стороне дорожек.


Вы написали,что - загружать скетч можно с помощью arduino (по той же ссылке, фото 2 или 4), или с помощью COM порта, или через переходник "USB to RS232". Мне в свое время достался и до сих пор валялся вот такой переходник



Значит его можно использовать для заливки скетча без платы Ардуино.Только бы в чип был залит загрузчик.Так? Интересно почему там RXD и TXD соеденены перемычкой?

У такой TTL есть один недостаток, относительно загрузки скетча. При загрузке необходимы определенные сигналы к контакту Reset (в некоторых есть дополнительно вывод reset, я в свое время брал такую для mini, и тоже без вывода reset к сожалению), а это черевато тем, что понадобится дополнительная обвязка.
Сам я ее не использовал, под рукой не оказалась в нужный момент.
По этому поводу есть статья:
How to upload sketches to Arduino UNO chip using PL2303 USB To RS-232 Converter


P.S. Разъемчики у Вас на плате отличные.Не встречались такие.Где можно посмотреть?


Я брал в ближайшем магазине радиодеталей (http://www.quartz1.com/price/price.php?group=12221&p=2). Тип разъемов HU и WF. Входят в группу разъемов низковольтного питания.
2012-11-13 добавлено 13/11/2012 16:35:11#387172

Новенький





46
Russian Federation Kazan
5 г. назад
CiberRus


Спасибо за информацию. Все очень подробно и понятно.
Все же решил прошить с помощью Ардуино (первая схема). Все собрал и засомневался.
При прошивке загрузчика надо убирать МК из платы или нет?
При заливке скетча надо убирать МК из платы, это там четко прописано.
А вот о первой схеме ничего не сказано?
Решил перестраховаться и переспросить у Вас.

aleksjet


Спасибо.
У Вас все получилось?
2012-11-13 добавлено 13/11/2012 21:28:14#387220

Посетитель





65
10 г. назад
сообщение Rust


aleksjet


Спасибо.
У Вас все получилось?



что должно получиться ??
если вы про мои эксперименты с дисплеем то еще ничего даже не побывал работаю каждый день до 12 ))
2012-11-14 добавлено 14/11/2012 13:19:42#387277

Новенький





46
Russian Federation Kazan
5 г. назад
aleksjet


Да. Об этом и хотел узнать.
2012-11-14 добавлено 14/11/2012 15:55:16#387297

Посетитель





78 2
Palestinian Territory Ramallah
5 г. назад
сообщение Rust
Все же решил прошить с помощью Ардуино (первая схема). Все собрал и засомневался.
При прошивке загрузчика надо убирать МК из платы или нет?
При заливке скетча надо убирать МК из платы, это там четко прописано.
А вот о первой схеме ничего не сказано?
Решил перестраховаться и переспросить у Вас.


Не бойтесь пробовать, в том оставите ли вы МК в гнезде или нет, от этого ничего страшного не произойдет.

Во-первых протокол ISCP - это функция микроконтроллера, плата без МК такой функцией не обладает. А это значит, что Вы не превратите свой конструктор в ISP программатор без микроконтроллера.
Во-вторых из п.1 инструкции сказано (1. Upload the ArduinoISP sketch onto your Arduino board) - загрузить скетч ArduinoISP. Не ясно куда Вы собираетесь загружать скетч, если МК будет вынут.

На всякий случай: ArduinoISP - это скетч, который входит в базовый состав примеров. Верхнее меню File - Examples - ArduinoISP.
2012-11-15 добавлено 15/11/2012 12:48:32#387378

Новенький





46
Russian Federation Kazan
5 г. назад
CiberRus


Да....,чем дальше в лес,тем круче волны.
Я вчера все-таки нашел,плюху во второй Ардуинке. Китайцы умудрились перемкнуть А4 и А5 поэтому-то похоже все и висло при подключении библиотеки RTC.
Но это все оказываеться были цветочки. Сегодня,примчавшись из больницы подключаю Ардуинку, но не могу залить ни один скетч.
Подключаю вторую, рабочую, тоже самое.
Пишет:

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51


Погуглил, похоже это большая проблема. И просто не лечиться. Самое главное на понятно почему это случилось и с обоими платами? Пробовал на втором компе тоже самое. Даже тесты не идут. Что-то с загрузчиком. Переставить драйвера?

P.S.
Я дико извиняюсь. Это называется "Сам дурак". На радостях неправильно вставил МК. Живучие они оказывается,хотя может, что-то и подгорело. Вообщем все нормально,теперь у меня две работающих Ардуинки. Пошел паять макетку для заливки загрузчика к заказанным чипам и изучать кнопки.

Изменено 15-11-2012 автор Rust

Изменено 15-11-2012 автор Rust
2012-11-15 добавлено 15/11/2012 16:34:02#387405

Новенький





46
Russian Federation Kazan
5 г. назад
CiberRus


Спасибо.

1. Upload the ArduinoISP sketch onto your Arduino board) - загрузить скетч ArduinoISP.

Я бы этот пункт точно пропустил(английский хромает).
Начал бы наверное последний.

4.Run Tools > Burn Bootloader > w/ Arduino as ISP.

А скетч ArduinoISP да я видил его в примерах. Но я еще не очень хорошо представляю примеры каких функций
они демонстрируют.
2012-11-15 добавлено 16/11/2012 00:22:47#387474

Посетитель





65
Russian Federation Moscow
10 г. назад
у меня вот такая проблема при компиляции
выделяет строку

LiquidCrystal lcd(1, 2, 3, 4, 5, 6, &shreg, 7); // Инициализируем дисплей

и в окне состояния пишет
been declared
sketch_nov21a:27: error: 'LiquidCrystal' does not name a type
sketch_nov21a.cpp: In function 'void setup()':
sketch_nov21a:38: error: 'lcd' was not declared in this scope
sketch_nov21a.cpp: In function 'void loop()':
sketch_nov21a:63: error: 'lcd' was not declared in this scope


меня смущает вот эта библиотека
#include <LiquidCrystalExt.h> // Подключаем библиотеку управления экраном

у меня такой нет есть только
LiquidCrystal.h>
2012-11-17 добавлено 17/11/2012 20:47:37#387672

Посетитель





65
Russian Federation Moscow
10 г. назад
aleksjet


С дисплеем разобрался )) спасибо ))
но вот другая проблема
часы не идут
как их выставить не понимаю
2012-11-17 добавлено 17/11/2012 21:41:34#387683

Новенький





46
Russian Federation Kazan
5 г. назад
aleksjet


Как не идут? Вообще или что-то видите на COM-порту?
RTC сами делали или покупная? Что у Вас за схема? Я видел с разным количеством резисторов. Проверить бы рабочая конструкция или нет? У CiberRus тоже самодельная. Интересно, а у него какая схема? Может появится, подскажет как и чего.
У меня покупная

Я сначала заливал первый скетч (страница1),где CiberRus выводил данные с датчика и время на COM-порт. Смотрел,пробовал менять время.
Затем подключал по схеме с платой RTC. Правда долго мучился с библиотеками,но все-таки добил. Я не мог выставить время с этой платой до тех пор,пока не вынул батарейку.Выставил время а потом (в работающей схеме вставил ее на место.И все теперь платка время помнит.
Правда во второй плате(я пробовал две) все пропадало через несколько секунд.Оказалось китайцы вставили дохлую батарейку.Заменил и все заработало.
2012-11-17 добавлено 17/11/2012 22:40:19#387690

Посетитель





65
Russian Federation Moscow
10 г. назад
сообщение Rust
aleksjet


Как не идут? Вообще или что-то видите на COM-порту?
RTC сами делали или покупная? Что у Вас за схема? Я видел с разным количеством резисторов. Проверить бы рабочая конструкция или нет? У CiberRus тоже самодельная. Интересно, а у него какая схема? Может появится, подскажет как и чего.
У меня покупная

Я сначала заливал первый скетч (страница1),где CiberRus выводил данные с датчика и время на COM-порт. Смотрел,пробовал менять время.
Затем подключал по схеме с платой RTC. Правда долго мучился с библиотеками,но все-таки добил. Я не мог выставить время с этой платой до тех пор,пока не вынул батарейку.Выставил время а потом (в работающей схеме вставил ее на место.И все теперь платка время помнит.
Правда во второй плате(я пробовал две) все пропадало через несколько секунд.Оказалось китайцы вставили дохлую батарейку.Заменил и все заработало.


все получилось
тоже сначала выставил время потом залил последний скетч
и все заработало ))
теперь бы прикрутить кнопки к плате что бы параметры менять и получится замечательное устройство которое походу можно доработать ))
2012-11-17 добавлено 17/11/2012 23:14:26#387694

Посетитель





65
Russian Federation Moscow
10 г. назад
а часы у меня такие же как и у тебя
точно такая же схема, на ней как я понял часов двое
2012-11-17 добавлено 17/11/2012 23:15:16#387695

Посетитель





65
Russian Federation Moscow
10 г. назад
сообщение aleksjet
сообщение Rust
[q]aleksjet


Как не идут? Вообще или что-то видите на COM-порту?

а по поводу ком порта там ничего не выводится он почему то отключается
не знаю пока почему
2012-11-17 добавлено 17/11/2012 23:16:47#387696

Новенький





46
Russian Federation Kazan
5 г. назад
aleksjet


Батарейку вынимал?

на ней как я понял часов двое
- нет, это микросхема памяти (EEPROM 32K) ,которая работает по протоколу I2C.
Хорошо бы научиться ее использовать. CiberRus где-то выше давал ссылки на ее применение. Я думаю это будет следующим этапом.

а по поводу ком порта там ничего не выводится он почему то отключается
- после заливки скетча с платкой у меня тоже кажется не выводится на COM. Подзабыл уже.

теперь бы прикрутить кнопки к плате что бы параметры менять и получится замечательное устройство которое походу можно доработать ))
- вот вот и я про тоже. Пока в больнице валяюсь под системой читаю упрощенный скетч,что для изучения выложил CiberRus. Но это действительно сильно упрощенный вариант с очень подробными комментариями. Азы. Но для таких, как я, конечно очень полезно.Но этого явно не достаточно:
- мало кнопок (мне так кажется)
- надо все это вывести на экран
- регулируемый параметр надо как-то выделить (морганием?)
- и т.д.
Короче, надо научится делать меню.
Но без чуткого руководства этим процессом CiberRus,задача не выполнимая.Во всяком случае для меня- это точно.
2012-11-17 добавлено 18/11/2012 00:22:20#387701

Посетитель





65
10 г. назад
с кнопками можно разобраться
есть одна тема про контроллер только доля аквариума
там даже реализовано меню и выставление параметров вводом информации кнопками

http://arduino.cc/forum/index.php/topic,7807.0.html

http://www.[лютые руссофобы. ссылка скрыта, чтобы не разжигать межнациональную рознь]/forum/index.php?showtopic=35841

http://www.[лютые руссофобы. ссылка скрыта, чтобы не разжигать межнациональную рознь]/forum/index.php?showtopic=2581

можно почитать вот эти ссылки там много можно чего почерпнуть и узнать
2012-11-20 добавлено 20/11/2012 10:58:18#387917

<< 123 5678910 >> Создать новую темуБыстрый ответ