#101 Re: Програмування Arduino » ПОМОГИТЕ!!! Выдает ошибку » 2016-12-10 22:44:31

А что по твоему означает фраза "No such file or directory"?
Если совсем плохо с английским, есть куча переводчиков.

#102 Re: Апаратні питання » Доработка китайской Android-чудо-автомагнитолы. Выключатель на ардуино » 2016-12-06 14:17:52

Martinways, я так понял ардуина будет включена всегда. Может в магнитолу лучше attiny13 запихнуть? Она будет хавать 1-2 миллиамперы, против десятков миллиампер ардуинки на atmege.
Вот скетч легко помещающийся в тиньку.

#define in_pin  0 //пин входа (меняете по своему вкусу)
#define out_pin 1 //пин выхода (аналогично)
#define _delay  150 //время задержки, мс*10

uint8_t timer = 0;

void setup() {
  pinMode(in_pin, INPUT);
  pinMode(out_pin, OUTPUT);
  digitalWrite(out_pin, LOW);
}

void loop() {
  if (!digitalRead(in_pin)) timer++;  //если кнопка нажата, увеличиваем счетчик времени
    else timer = 0;                   //иначе сбрасываем в 0 (защита от дребезга)
  delay(10);                          //ждем 10 мс
  if (timer > _delay) {               //время задержки прошло?
    digitalWrite(out_pin, !digitalRead(out_pin)); //меняем значение на выходе
    timer = 0;                        //сбрасываем таймер
  }
}

P.S. Можно заставить и тиньку и мегу засыпать до изменения состояния входа, тогда потребление вообще ничтожное будет.

#104 Re: Апаратні питання » Доработка китайской Android-чудо-автомагнитолы. Выключатель на ардуино » 2016-12-05 23:23:26

Для начала надо схему состряпать. Потом габариты платы внесут свои корректировки в используемые элементы. Потом еще всякие тонкости компоновки и совместимости. И т.д. и п.т.
В конце концов получается ожидаемый продукт.

#105 Re: Апаратні питання » Доработка китайской Android-чудо-автомагнитолы. Выключатель на ардуино » 2016-12-05 18:24:51

Подавление помех - это целая наука.
Если кратко - здесь указаны рекомендации по сведению к минимуму наводок на кварц.
Могу помочь чем смогу.

#106 Re: Програмування Arduino » нужно сделать конвертор PS/2 в USB + флэш диск с SD карты = 2000 грн » 2016-12-02 23:35:55

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

#107 Re: Апаратні питання » GSM модули » 2016-11-25 09:38:44

Для работы SIM900 надо 2 вывода Arduino. Имеем 14 цифровых выводов = 7 модемов. Возможно SoftwareSerial заработает и на аналоговых выводах, тогда еще 3 модема подцепите.

#108 Re: Апаратні питання » GSM модули » 2016-11-24 15:15:52

Вопрос из разряда - сколько грибов можно положить в корзину?
Arduino какая? Модуль какой?
В общем случае сколько будет COM портов (в том числе и виртуальных), столько и модулей подключите.

#110 Re: Програмування Arduino » Ошибка при компиляции библиотеки RTC1307 » 2016-11-14 16:42:57

Я данную библиотеку вообще не использую.
Попробуйте так:
//блок считывания текущего времени и даты
Wire.beginTransmission(0x68);
Wire.write((uint8_t)0);
Wire.endTransmission();
Wire.requestFrom(0x68, 7);
//    if (Wire.available() < 7) return;
Second = bcd2dec(Wire.read() & 0x7f);
Minute = bcd2dec(Wire.read() );
Hour =   bcd2dec(Wire.read() & 0x3f);  // mask assumes 24hr clock
Wday = Wire.read();
Day = bcd2dec(Wire.read() );
Month = bcd2dec(Wire.read() );
Year = bcd2dec(Wire.read() ); //отсчет с 2000 года

//блок записи текущего времени и даты
Second |= 0x80;  // stop the clock
Wire.beginTransmission(0x68);
Wire.write((uint8_t)0); // reset register pointer
Wire.write(dec2bcd(Second)) ;
Wire.write(dec2bcd(Minute));
Wire.write(dec2bcd(Hour));      // sets 24 hour format
Wire.write(Wday);
Wire.write(dec2bcd(Day));
Wire.write(dec2bcd(Month));
Wire.write(dec2bcd(Year));
Wire.endTransmission();

Second &= 0x7f;  // start the clock
Wire.beginTransmission(0x68);
Wire.write((uint8_t)0x00); // reset register pointer
Wire.write(dec2bcd(Second)) ;
Wire.endTransmission();

#113 Re: Програмування Arduino » Помогите создать скетч для станка » 2016-10-20 09:20:33

Надо детально продумать ВСЕ ВОЗМОЖНЫЕ нестандартные ситуации (че-то включилось/не включилось, где-то датчик сработал/не сработал, что-то заело и не сдвинулось/сдвинулось) и в программе добавить действия в случае их возникновения. Это надо сделать ОБЯЗАТЕЛЬНО иначе в один "прекрасный" момент может случиться полная жопа.

#114 Re: Програмування Arduino » Lcd » 2016-10-19 11:10:26

Перечитал еще раз 1-й пост. У вас 0 остается от числа 100.0, так как 99.9 занимает на одно знакоместо меньше и 0 стандартными средствами не затирается. Если число будет 9.9 - будет видно 2 знака от предыдущих чисел. Вам надо либо перед выводом затирать предыдущие числа пробелами (можно просто очистить дисплей) либо нужен форматированный вывод на дисплей. Ознакомтесь http://www.c-cpp.ru/content/printf. Про оба эти метода уже писали ранее, но вы упорно изобретаете велосипед.

Кусок кода, который вы привели является вариантом форматированного вывода, только вместо одной переменной вы используете 4.

#115 Re: Програмування Arduino » Lcd » 2016-10-18 21:26:32

goodspeedmen пише:

Ребята я очень всем благодарен всем за ваши ответы но поймите я не умею читать мысли, если их пишите то излагайте из в виде кода, мы же тут "программисты" всё же big_smile

Я тоже не умею читать мысли. Диапазон чисел? Какой дисплей? Какие действия с числами надо совершать?
Какой код можно написать не зная под что писать?

#116 Re: Апаратні питання » Електронний перемикач (не реле) » 2016-10-18 21:20:42

В 3-х вайлантах на "контакт" идет 24В переменки сразу с трансформатора, а потом уже диодный мост и все остальное. Так что мосфет не прокатит. Может еще в некоторых тоже переменку надо коммутировать.

#117 Re: Програмування Arduino » Lcd » 2016-10-17 21:37:49

Согласен - деление занимает много времени, но это окупается простотой работы с числом. Через lowByte() и highByte() ниче у вас не выйдет, например число больше 65355, что тогда?

#118 Re: Програмування Arduino » Lcd » 2016-10-17 08:28:18

Похоже мы говорим о разных вещах.
У тебя изначально дробное число с одной цифрой после запятой. Храни его в long умноженным на 10, иначе говоря младший разряд - это цифра после запятой, все остальное целая часть. Дальше смотри 2-й пост.

#119 Re: Різне » А кто модер на форуме? » 2016-10-16 20:15:25

Опять спам повалил, наверно автор IP адрес поменял....

#120 Re: Програмування Arduino » Lcd » 2016-10-16 20:04:08

Я так понял нужен форматированный вывод на дисплей. Варианта 3: преобразовать число в строку как вам надо и уже ее выводить на дисплей, использовать функции вывода поддерживающие форматирование, написать что-то свое.

0. 99 - это 9.9, 157 - это 15.7 и не надо никаких 2-х, 3-х или 4-х переменных, достаточно одной, NoName вам все написал.
1. 99/10 = 9. Выводим {009} или {   9} или форматируем как надо.
2. Выводим точку {.}
3. 99 [10] = 9. выводим {9}
Результат 009.9 или    9.9
Как-то так.

#122 Re: Програмування Arduino » часы на газоразрядных индикаторах на ардуино » 2016-09-27 15:59:12

Нужна всего одна переменная для сохранения времени, которая будет сравниваться с текущим временем. Вторая переменная для текущего времени не нужна - она и так есть.
Да. После каждого срабатывания добавляем 3 и сохраняем.
Вполне достаточно хранить только минуты.

#123 Re: Програмування Arduino » часы на газоразрядных индикаторах на ардуино » 2016-09-27 13:16:51

У вас ведь есть текущее время. Добавляем к нему 3 минуты и запоминаем.
Процедура сравнивает текущее время и сохраненное, если совпадает - прогоняем цифры, берем текущее время, добавляем 3 минуты и запоминаем. Вот и вся процедура.

#124 Re: Програмування Arduino » Помогите изменить код. » 2016-09-20 08:34:18

Ну если по простому то как-то так:

int flag0 = 0;
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;

void setup()
{
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);

  pinMode(0, INPUT);
  pinMode(1, INPUT);
  pinMode(2, INPUT);
  pinMode(3, INPUT);
}

void loop()
{
  //первая кнопка
  if (digitalRead(0) == HIGH && flag0 == 0)
  {
    digitalWrite(10, !digitalRead(10));
    flag0 = 1;
  }
  if (digitalRead(0) == LOW && flag0 == 1)
  {
    flag0 = 0; //обнуляем переменную flag
  }

  //вторая кнопка
  if (digitalRead(1) == HIGH && flag1 == 0)
  {
    digitalWrite(11, !digitalRead(11));
    flag1 = 1;
  }
  if (digitalRead(1) == LOW && flag1 == 1)
  {
    flag1 = 0; //обнуляем переменную flag
  }

  //третья кнопка
  if (digitalRead(2) == HIGH && flag2 == 0)
  {
    digitalWrite(12, !digitalRead(12));
    flag2 = 1;
  }
  if (digitalRead(2) == LOW && flag2 == 1)
  {
    flag2 = 0; //обнуляем переменную flag
  }

  //четвертая кнопка
  if (digitalRead(3) == HIGH && flag3 == 0)
  {
    digitalWrite(13, !digitalRead(13));
    flag3 = 1;
  }
  if (digitalRead(3) == LOW && flag3 == 1)
  {
    flag3 = 0; //обнуляем переменную flag
  }
}

Хотя есть и более красивые решения.

#125 Re: Програмування Arduino » Проблема с вызовом функций из секции setup » 2016-09-17 21:10:26

Долго не отписывал, так так прибор находится в машине, времени на эксперименты не было, а машина без него не едет.
Вобщем работает все, независимо от того где располагать тело функции и как писать с {} или без них. Это я лоханулся при написании кода и на компиляцию пошел вариант как в 1-м сообщении (без скобок после Set_Time_and_Date), но самое интересное, что компилятор не ругнулся. Видимо имя Set_Time_and_Date где-то уже объявлено в недрах системных библиотек или х.з. чем Wiring нравится Set_Time_and_Date, что он молча проглотил все это. Специально убираю любую букву из Set_Time_and_Date и, вуаля, компилятор начинает ругаться.

Ось так от х@йня, малята.
(С) Дід Панас.

Підвал форуму