Arduino nano. Ищу исполнителя для написания скетча.

Gambit767
Offline
Зарегистрирован: 21.08.2019

Ок! Спасибо

b707
Offline
Зарегистрирован: 26.05.2017

Дед зря ты это... таких учить надо, если его жизнь не учит.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

да няхай. Он тут мошт первый и последний раз.  

Gambit767
Offline
Зарегистрирован: 21.08.2019

Так и есть , мне понадобился всего один макет и не более

Kakmyc
Offline
Зарегистрирован: 15.01.2018
class multiKey//создадим класс кнопок
{public://общие функции и переменные
    //конструктор класса
    multiKey(byte pin,byte state,byte val);   
    byte read();//функция обработчика нажатий
private://личные переменные и функции класса
    //локальные переменные обьекта номер пина/тип сигнала/количество кликов
 byte _pin,_state,_val;
 uint32_t start_press;//переменная времени нажатия кнопки
 uint32_t pressTime;//переменная длительности нажатия кнопки
 uint32_t double_press;//переменная времени между нажатиями
 boolean pressFlag;//переменная флага нажатия
 byte press_one;//переменная количества нажатий
//переменные состояния/временного состояния/нажатия кнопки
 byte num,_num,button; 
};

byte multiKey::read(){ 
!_state?button=digitalRead(_pin):button=!digitalRead(_pin);//в зависимости от того, что в конструкторе настраиваем кнопку
	if(!button){num=0;}//если кнопка отпущена, выдаем результат 0
	if(button&&!pressFlag)//если кнопка нажата и флаг опущен
	{pressTime=millis()-start_press;//считаем время нажатия кнопки
		if(pressTime>=1500){//если длительность нажатия больше 1,5 сек
			pressFlag=1;//поднимаем флаг
num=255;//значение кнопки long
pressTime=0;//сбрасываем длительность нажатия
		}		}
	if(!button){//если кнопка отпущена
 start_press=millis();//сбрасываем время нажатия
pressFlag=0;//опускаем флаг
}

	if(!button&&!pressFlag){//если кнопка и флаг отпущены
		if(pressTime>50&&pressTime<1500)//а время нажатия больше 50мс, но меньше 1,5сек
		{press_one++;//увеличиваем счетчик количества нажатий
 if(press_one>_val)press_one=_val;//ограничиваем значение счетчика
 pressTime=0;//сбрасываем длительность нажатия
 double_press=millis();//запускаем таймер ожидания следующего нажатия
    }}
if(press_one){//если было короткое нажатие
if(millis()-double_press>=300){//ждем 0,3сек
pressTime=0;//сбрасываем длительность нажатия
num=press_one;//значение кнопки приравниваем к количеству нажатий
press_one=0;//сбрасываем количество нажатий
  }}
_num=num;//для одиночного вывода результата, используем временную переменную
num=0;//обнудяем основную переменную значения кнопки
	return _num;//возвращаем значение кнопки
}
//функция конструктора класса
/*в конструкторе указываем:
номер пина
тип сигнала (лог0/лог1)
максимальное количество отслеживаемых кликов*/
multiKey::multiKey(byte pin,byte state,byte val)
{_pin = pin;//передаем внутренней переменной номер пина
//!state?_state=2:_state=0;//в зависимости от выбранного типа сигнала меняем значение переменной
_state=state;
_val=val;//передаем внутренней переменной количество кликов
 pinMode(pin,_state);//конфигурируем пин согласно типа сигнала
 }
 
 boolean led1,led2;
  multiKey myBtn(9,0,2);
  
 void setup(){
 pinMode(11,1);
 pinMode(13,1);
 }
 void loop(){
byte btn_state=myBtn.read();
switch(btn_state){
case 0:break;
case 1: led1=!led1;digitalWrite(11,led1);break;
case 2: led2=!led2;digitalWrite(13,led2);break;
case 255: break;
}
 }

Как то так

iksa
Offline
Зарегистрирован: 27.02.2016

Ребята, Нужно доработать скетч описанный на 



http://tehnopage.ru/ethernet-arduino-control 



Доработки: 



1. убрать датчики температуры, влажности, дыма 



2. подключить к четырём отдельным пинам 4 датчика температуры DS18B20. 



3. оставить управления 4 реле.



за какую цену согласны доработать?

 

Kakmyc
Offline
Зарегистрирован: 15.01.2018
Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

1500 р

sadman41
Offline
Зарегистрирован: 19.10.2016

А у меня уже готовый есть. Без SD-карты, на количество DS-ок и реле пока ног хватит на МК. Состояния релюшек сохраняются в EEPROM. Но не за 500р, естественно.

wrk.sadman@gmail.com

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Gambit767 пишет:
Ок! Спасибо

Как и ожидалось, ТС ищез с концами.  :)

bwn
Offline
Зарегистрирован: 25.08.2014

DetSimen пишет:

Как и ожидалось, ТС ищез с концами.  :)

Дык ему еще четыре винды надо установить, чтобы покушать и потом с тобой рассчитаться.)))) Мизантроп ты, аднака, не веришь - "в души прекрасные порывы".))))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

bwn пишет:

 Мизантроп ты, аднака, не веришь - "в души прекрасные порывы".))))

Мои розовые очки пошли трещинами уже примерно 35 лет назад. А к 30-ти годам вапще раскололись нахрен.  

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Дед, а почему ноги у тебя не дефайнами назначены? Это экономит память :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brokly пишет:
Это экономит память :)

На скока? На 0 байт?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

brokly пишет:
Это экономит память :)

На скока? На 0 байт?


Ну как это на ноль. У тебя выделяется переменная, которая требует инициализации. А дефайн позволяет сразу зарядить константу в стек или регистр. Правда у меня это тянется ещё с пиков, там точно оптимизация компилятора делала код с дефайнами меньше.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

А вдруг ему нужно , что бы компилятор знал какого именно типа переменная у него указывает на номер пина ? :-)
Ну или вдруг надо будет ему номера пинов в указатели запихать.
Как привык, так и пишет.
Мне вот тоже дефайнами удобнее.
Особенно учитывая, что их подсвечивает другим цветом редактор.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

замена на дефайны в коде Деда в 1.8.9, "из кАропки", дает экономию в НОЛЬ байт!

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Kakmyc пишет:
что бы компилятор знал какого именно типа переменная

#define pin (byte)5

не?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

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

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

xDriver пишет:

замена на дефайны в коде Деда в 1.8.9, "из кАропки", дает экономию в НОЛЬ байт!


Умный компилятор, но не системный подход :) Это лишний раз указывает, что нужно было юзать дефайны:)

sadman41
Offline
Зарегистрирован: 19.10.2016

brokly пишет:
DetSimen пишет:

brokly пишет:
Это экономит память :)

На скока? На 0 байт?

Ну как это на ноль. У тебя выделяется переменная, которая требует инициализации.

#pragma GCC optimize ("O0")

//#define  USE_DEFINE

/*

USE_DEFINE: 
Sketch uses 1,184 bytes (3%) of program storage space. Maximum is 32,256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.

//USE_DEFINE:
Sketch uses 1,184 bytes (3%) of program storage space. Maximum is 32,256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.

*/
#if defined(USE_DEFINE)
#define  ledPin   13
#else
uint8_t const ledPin = 13;
#endif

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, !digitalRead(ledPin));
  delay(1000);
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brokly][quote=DetSimen пишет:

Ну как это на ноль. У тебя выделяется переменная....

Эммм...  Мне очень стыдно такое спрашивать, но ответьте мне, мы одни с котом там const видим?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Я, чеснаговоря, думал, что в 2019-м  дефайны с константами только у Onkel-я остались в его чесном-пречесном.  А тута вон чо....  

Нада напица. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ой..... Уж и потрындеть низя :) ф телефоне все так мелко.... А бесконечное вискикола на лежаке притупляют нюх.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

на лежак надо планшет брать.  Я вот могу всё пропить, но не планшет.  Полезная штучка. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

я ищезаю до понедельника. В Н-ске наступает время вечерних Битлов.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DetSimen пишет:

я ищезаю до понедельника. В Н-ске наступает время вечерних Битлов.

..но случилась со мною история,

я купил радиолу Эстония,

и в свободный часок, на полчасика,

я прилег позабавиться классикой.

================

;)))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Вот. А у мня кот прилёг классикой позабавица. А я поливать пашол. :) 

Green
Offline
Зарегистрирован: 01.10.2015

DetSimen пишет:

я ищезаю до понедельника. В Н-ске наступает время вечерних Битлов.

Так Битлы это ж попса! Их только школьники слушают, и то, в своё время.)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

я школьнег 80-х, я слушаю.  В своё время. 

Green
Offline
Зарегистрирован: 01.10.2015

Не, ну если только поностальгировать, поассоциировать... Это да.)

sadman41
Offline
Зарегистрирован: 19.10.2016

DetSimen пишет:

Gambit767 пишет:
Ок! Спасибо

Как и ожидалось, ТС ищез с концами.  :)

Ну что, мы таки вновь имеем подтверждение того, что, 90% пробегающих и забегающих преследуют одну лишь цель - решить сиюминутную проблему. А раз проблема решена - можно свалить без всяких зазрений совести. До следующего раза.

Green
Offline
Зарегистрирован: 01.10.2015

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

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Gambit767 пишет:
Ну так я тоже далеко не грузчик , гик , хорошую сборку винды могу поставить и настроить все за 300-500 рубасов. Интересно а если нужно большую программу написать , вы будете 50к брать с человека?

Читаю я и ох...уваю. Больше никак не выразишься. "гик" - звучит же... ))

Отошол на неделю, а тут такое без меня происходит.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Да на личном опыте основано:
Кто то из заказчиков за копейку всю душу готов вытрясти, а другой за указанный минимум доплачивает сверху вдвое.

ArdUcRaFT
Offline
Зарегистрирован: 17.06.2019

Используй Gyver button.h

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Gambit767 пишет:
Ну если на то брать то можно и планку поставить 5к за 50 строчек , может кто в ресторан каждый день ходит. Просто это наглежь, брали бы пропорцию обьем/деньги таких бы цен не было.

Ну, вообще-то такие расценки были. Где-то году в 1985 одна строка кода стоила $12. С учетом инфляции на сегодняшний день это будет примерно $30 за строку.

Сколько там у Вас кода? 50 строк? $1500 платить готовы?

 

PS. Цифры взяты не с потолка, а из известной книги Брукса - классика в этой области.

PPS. Именно этот самый Брукс как раз в 1985 году показал, что "пропорция объем/деньги" не может отразить реальной стоимости работы в IT-индустрии.

PPPS. Вы тут что-то говорили о большой программе за 50к? Даже если имеются в виду $50к, для большой программы - это просто смешно.

PPPPS. Вы писали, за сколько Вы ставите прошивку или Винду. Наводящий вопрос: а прошивку или Винду Вы сами писали? Мне кажется, Вы принципиально не хотите платить за работу программиста, поэтому и озвучиваете цифры порядка 200р за 100 строк. Напишите 100 строк и, так их быть, я Вам их за 200 рублей прошью.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andycat пишет:

Gambit767 пишет:
А нафиг лицензию ставить когда там дохрена шлака который нафиг не нужен?? Только систему тормозит которая может работать быстрее в 2 а то и в 3 раза!! Миллион программ в автозапуска! Зато 1 раз настроил хорошо и работает пока либо ты её сам не поломаешь или жёсткий диск не откажет. Нафиг лицензию ? Когда все оде самое может работать лучше но за бесплатно? Просто платишь за работу и настройку!

Вам сколько лет?

Вот когда в организации крупной поработаете и увидите как из сборок г.... нифига нормальные проги не работаю - посмотрим как поменяется мнение ;)

во во, мы то корпоративные лицензии покупаем )))