картинки слишком большие, нужно поменьше, чтобы удобнее было рассматривать
Приветствую!
Кто-нибудь сможет помочь?
https://baraholka.onliner.by/viewtopic.php?t=23356717
офлайн
TotCambIKoka
Senior Member
|
|
828 |
10 лет на сайте Город:
|
Чем? там уже все готово.. или вы хотите завести к человеку модуль и чтоб он у себя это сделал со своими комплектующими?
TotCambIKoka:Чем? там уже все готово.. или вы хотите завести к человеку модуль и чтоб он у себя это сделал со своими комплектующими?
Именно так.
Или подскажите, с нано это прокатит, или только с мегой?
офлайн
Protez1999
Senior Member
Автор темы
|
|
9977 |
16 лет на сайте Город:
|
Protez1999:прокатит, только пины поменять и все.
кто-нибудь сможет помочь мне соединить воедино ардуино нано, скетч, релюшку, ноутбук и сигналку?
mylog:кто-нибудь сможет помочь мне соединить воедино ардуино нано, скетч, релюшку, ноутбук и сигналку?
про сигналку не подскажу, но по поводу всего остального инструкция ниже
1. покупаешь ардуино нано
или, что прикольнее, ардуино нано BLE (со встроенным блюпуп модулем)
2. покупаешь блок управляемых реле
3. в протеусе рисуешь следующую схему платы расширения для ардуины, для управления реле через сдвиговые регистры
4. все это паяешь и получаешь такую конструкцию
5. пишешь скетч для ардуины
https://clck.ru/JaMYf
6. пишешь метод для веб сервера для ноутбука в вижуал студии на F#
https://codeshare.io/5wpoq7
7. зажечь или потушить одну (несколько релюшек) можно через веб-браузер при помощи адресной строки, например
https://localhost:44395/api/home/reles/1,2,3,4,5,6,7,8
офлайн
Protez1999
Senior Member
Автор темы
|
|
9977 |
16 лет на сайте Город:
|
Это не ваша тема, в вашей все готово. Загрузить код, подключить и посмотреть.
zverjuga:все это паяешь и получаешь такую конструкцию
А в соике не было 595? Ну а коль не было, так зачем ее на дороги паять, а не поставить как для дип задумано с обратной стороны?
Один фиг провода с разъёмами гэ редкостное даже на стадии разработки, в устройстве надо все припаивать или на винтовые клеммы сажать.
Кстати, а на кой там вообще 595 нужна? Портов же вагон и маленькая тележка !!!!
Arduino выпустила альфу Pro версии IDE https://blog.arduino.cc/2019/10/18/arduino-pro-ide-alpha-preview- ... k6blpl5wrY
SIO:А в соике не было 595? Ну а коль не было, так зачем ее на дороги паять, а не поставить как для дип задумано с обратной стороны?
дело в том, что в протеусе не было модели 595 в соик корпусе. соик был для 164-ой серии, я сначала его и использовал. но там нет защелкивающей ноги, поэтому при переключении какого то одного реле кратковременно моргали все 8 ног. пришлось отказаться и взять 595 в корпусе дип.
SIO:Один фиг провода с разъёмами гэ редкостное даже на стадии разработки, в устройстве надо все припаивать или на винтовые клеммы сажать.
по факту и припаял.
SIO:Кстати, а на кой там вообще 595 нужна? Портов же вагон и маленькая тележка !!!!
ну мало ли, еще для чего понадобится. или еще релюшек захочется добавить.
mylog:Приветствую!
Кто-нибудь сможет помочь?
https://baraholka.onliner.by/viewtopic.php?t=23356717
прям ветка непуганых идиотов
Была такая страна Беларусь. Был такой город Минск. И в 2000-ых появилась воля в это стране уменьшить количество угонов автомобилей. Если не полностью, то хотя бы значительно уменьшить. И была в это стране такая организация под названием КГБ. Вот поручили ей что-то предпринять с этим вопросом. И в этой стране резко уменьшилось количество угонов автомобилей. И это накак не повляло на продажу специального оборудования для этих противоправных деяний. Мало того появились специализированные сайты которые смогли предлагать самые прогрессивные технологии для этих противоправных деяний.
Вот и сказочке конец, а кто слушал молодец.
вот и повеселился
код переписал кнопкотыка
перебор пустил без всяких аппаратных лишностей
все средствами самой ардуины жки кнопок корректировки контрольксветолдиодареле и контакакта светодиодапандоры
отлаживать лень все равно пандоры нет на руках
пойду посплю что ли?
// art100 to write 20191022 knopkotik
#include <LiquidCrystal.h> // Подключение библиотек
//pins------------------------------------------------
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Инициализация LCD с указанием пинов
#define PINBUTANALOG A0
//#define W_CLK 15 // Пин A1 Arduino - подключен к CLK
//#define FQ_UD 16 // Пин A2 Arduino - подключен к FQ (FU)
//#define DATA 17 // Пин A3 Arduino - подключен к DATA
//#define RESET 18 // Пин A4 Arduino - подключен к RST
#define BUTRIGHT 0 // Создание директив для кнопок
#define BUTUP 1
#define BUTDOWN 2
#define BUTLEFT 3
#define BUTSELECT 4
#define BUTNONE 5
//pins-------------
#define PINFROMLED A5
#define PINTORELAY A4
/* 16x2 LCD compatible with the Hitachi HD44780 driver
1 +5v
2 pin1-20k-pin3
3 gnd
4 RS - 4
5 gnd
6 E - 5
11 LCD D4 pin to digital pin 6
12 LCD D5 pin to digital pin 7
13 LCD D6 pin to digital pin 8
14 LCD D7 pin to digital pin 9
15 Anod +5V nc
16 Katod gnd nc
*/
//consts-----------------------------------------------------------------------
int LedCountWrongFrom = 2; // Кол-во изменения состояния диода при неверном valet. Загорелся и потух это 2
int LedTimeWaitCodeFrom = 5000;
int TimeRelay = 1200;
int v = 0;
int v1,v2,v3,v4 = 1;
int led_sw = 0;
char buf[20];
bool stp = true;
//consts----------------------------------------------
float freq = 10000;
float Step__Big = 1000; // при нажатии вверх/вниз
float StepSmall = 10; // при нажатии вправо/влево
int key_lcd = 0;
int key_rezistors = 0;
int FlagSelect=0;
int FlagUp=0;
#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
//------------------------------------------------------
int key_read1(){ // Функция считывания нажатия кнопок
key_rezistors = analogRead(PINBUTANALOG); // if (key_rezistors > 1000) return BUTNONE;
if(key_rezistors < 60) return BUTRIGHT;
if(key_rezistors < 200) return BUTUP;
if(key_rezistors < 400) return BUTDOWN;
if(key_rezistors < 600) return BUTLEFT;
if(key_rezistors < 800) return BUTSELECT;
return BUTNONE;
}
//-------------------------------------------------------
//void tfr_byte(byte data){ // Функция побитной отправки байта
// for (int i=0; i<8; i++, data>>=1) { // данных в модуль генератора
// digitalWrite(DATA, data & 0x01);
// pulseHigh(W_CLK);}} // Подача импульса на CLK после каждого бита
////-------------------------------------------------------
//void sendFrequency(double frequency) { // Преобразование и отправка
// int32_t freq = frequency * 4294967295/125000000; // значения частоты
// for (int b=0; b<4; b++, freq>>= {tfr_byte(freq & 0xFF);}
// tfr_byte(0x000); // Отправка завершательного контрольного байта
// pulseHigh(FQ_UD);} // Обновление частоты генератора
//------------------------------
void parseV() {
v1=(int)(v/1000); v2=(int)(v%1000/100); v3=(int)(v%100/10); v4=(int)(v%10);
if(v1==0) v1++; if(v2==0) v2++; if(v3==0) v3++; if(v4==0) v4++;
v = v1*1000 + v2*100 + v3*10 + v4;
}
//------------------------------
void writePinDigit(int num, bool is_delay) {
int n;
for(n=0; n<num; n++){ digitalWrite(PINTORELAY,HIGH);delay(100);digitalWrite(PINTORELAY, LOW);delay(100); }
if(is_delay) delay(TimeRelay);
}
//------------------------------
void ledCounter() {
int max=LedTimeWaitCodeFrom/10; int prev=LOW; int sw=0; int n=0; int st;
for(n=0; n<max; n++){
st=digitalRead(PINFROMLED);
if(st!=prev){ sw++; prev=st; }
delay(10);
}
if(sw!=LedCountWrongFrom){ sprintf(buf, "stop!"); Serial.println(buf); stp=true; }
led_sw=sw;
}
//------------------------------
void iteration() {
writePinDigit(v1, true); writePinDigit(v2, true); writePinDigit(v3, true); writePinDigit(v4, false); ledCounter();
sprintf(buf, "code: %d, led: %d", v, led_sw); Serial.println(buf);
if(!stp){ v++; parseV(); }
}
//----------------------------------------------------
void iteration2() {
if(Serial.available()>0){
String rec = Serial.readString();
v=rec.toInt();
parseV();
stp=false;
sprintf(buf, "start code %d", v); Serial.println(buf);
}
if(v>0 && v<10000 && !stp){ iteration(); }
}
//----------------------------------------------------
void knopkotik1(){
key_lcd = key_read1();
switch (key_lcd){
// case BUTRIGHT: {freq += StepSmall; break;}
// case BUTLEFT: {freq -= StepSmall; break;}
case BUTUP: FlagUp=1; break;
// case BUTDOWN: {if (freq == Step__Big){freq -= (Step__Big/10);}
case BUTSELECT: FlagSelect=1; break;
// case BUTNONE: {break;}
}
for(int n=0;n<9999;n++){
// if(Serial.available()>0){
// String rec = Serial.readString();
// v=rec.toInt();
v=n;
parseV();
stp=false;
sprintf(buf, "code %d", v);
Serial.println(buf);
lcd.setCursor(0,1); lcd.print(buf);
delay(TimeRelay);
}
if(v>0 && v<10000 && !stp){ iteration(); }
}
//=======================================
void setup(){
Serial.begin(9600);
pinMode(PINFROMLED, INPUT);
pinMode(PINTORELAY,OUTPUT);
lcd.begin(16, 2); // Старт библиотеки. Указанием количества символов и строк
// pinMode(FQ_UD, OUTPUT);
// pinMode(W_CLK, OUTPUT);
// pinMode(DATA, OUTPUT);
// pinMode(RESET, OUTPUT);
// pulseHigh(RESET); // Отправка импульсов для запуска модуля генератора
// pulseHigh(W_CLK);
// pulseHigh(FQ_UD);
}
//----------------------------------------------------
void loop(){
lcd.setCursor(0,0); lcd.print("knopkotik");// Далее вывод текущего значения частоты
knopkotik1();
// lcd.setCursor(6,0); lcd.print(" ");
// lcd.setCursor(6,0); if (freq<1000){lcd.print(freq); lcd.print("Hz");}
// if ((freq>=1000)&&(freq<1000000)){lcd.print(freq / 1000);
// lcd.print("kHz");}
// if ((freq>=1000000)&&(freq<50000000)){lcd.print(freq / 1000000);
// lcd.print("MHz");}
//
// lcd.setCursor(0,1); lcd.print(" Genie v1.0");
// if (freq<100){Step__Big = 10; // Определение шага грубой и точной
// StepSmall = 1;} // настройки в зависимости от частоты
// if ((freq>=100)&&(freq<1000)){Step__Big = 100; StepSmall = 1;}
// if ((freq>=1000)&&(freq<10000)){Step__Big = 1000; StepSmall = 10;}
// if ((freq>=10000)&&(freq<100000)){Step__Big = 10000; StepSmall = 100;}
// if ((freq>=100000)&&(freq<1000000)){Step__Big = 100000; StepSmall = 1000;}
// if ((freq>=1000000)&&(freq<10000000)){Step__Big = 1000000; StepSmall = 10000;}
// if ((freq>=10000000)&&(freq<40000000)){Step__Big = 10000000; StepSmall = 100000;}
//
// key_lcd = key_read1(); // Считывание клавиш
// switch (key_lcd){ // Далее обработка нажатий клавиш
//
// case BUTRIGHT: {freq += StepSmall; break;}
// case BUTLEFT: {freq -= StepSmall; break;}
// case BUTUP: {freq += Step__Big; break;}
// case BUTDOWN: {if (freq == Step__Big){freq -= (Step__Big/10);}
// else {freq -= Step__Big;}
// break;}
// case BUTSELECT: {break;}
// case BUTNONE: {break;}
// }
// if (freq<1) freq=1; // Ограничение значений частоты
// if (freq>40000000) freq=40000000;
// sendFrequency(freq); // Вызов функции отправки частоты
// delay (200); // Пауза 200 мс
}
//======================================================
P.S.
смотрю вставка в онлайне теги угловые скобки корявит
ну да ладно кто захочет
тот может починить этот код и получит вполне приличный взрослый генератор на аддуине с индикатом корректировкой частоты помоемому вроде и скважности
Вот это круто!
Ctrl-F "delay(" = 5
Magic numbers.
Тонна дефайнов и переменные типа "v1, v2" etc.
Офигенно радуют глобальные переменные и фееричное
for(int n=0;n<9999;n++){
v=n;
parseV();
...
}
Да, я в курсе, кой-кто любит хорошее вино. Но не настолько же!
глобальные переменные и дефайны для хардвара - это абсолютно нормально. а порой необходимо.
Ключ активации для программы rlbs универсальный !! Пищите на почту hryb3@ mail.ru
Ключ работает во всех версия программы RIBS и потдерживает как режим лазера так и выжигателя.