Ви не увійшли.
ChatGPT тим паче не москаль ;-)
Не могу не поделиться видео о том, как чат-бот пишет программы для Arduino. Сначала кажется, что он ничего не сможет, но он удивляет пониманием текста запроса и получаемым результатом.
https://youtu.be/Lw1WrubK5fk
PS: Вибачайте, що не рідною мовою, але як є.
Титановый велосипед хорош, а у меня тоже есть специальный велосипед для ржавых кнопок:
void setup(void) {
buttonSetup(); // настройка кнопки
pinMode(13, OUTPUT); // будем управлять свечением светодиода
digitalWrite(13, HIGH); // изначально он будет включен
}
void loop(void) {
buttonIteration(); // опрос кнопки и вызов обработчика логического события при необходимости
delay(5); // вместо задержки тут может быть что-то более полезное, как то ввод-вывод инфрмации и расчёты
}
/*
* Суперкнопка 14.05.2000 (c) НТУУ "КПИ", ФИВТ, АУТС, ИА71-09
* Хотя ладно... такой же алгоритм наверняка работает в калькуляторах с резиновыми клавишами
* и в других устройствах с ненадёжными контактами.
* Для подстройки скорости срабатывния кнопки изменяйте BUTTON_MAX_LVL и BUTTON_MIN_LVL.
*/
#define BUTTON_PIN 7 // номер ножки для кнопки (второй контакт этой кнопки подключить на землю)
#define BUTTON_MAX_LVL 192 // верхний предел счётчика устранения дребезга, допустимые значения [128..255]
#define BUTTON_MIN_LVL 64 // нижний предел счётчика устранения дребезга, допустимые значения [0..127]
byte buttonData; // внутреннее промежуточное состояние кнопки, которое изменяется от BUTTON_MIN_LVL до BUTTON_MAX_LVL
void buttonSetup() {
buttonData = BUTTON_MAX_LVL; // инициализация верхним значением, если подтянуто к плюсу питания
pinMode(BUTTON_PIN, INPUT_PULLUP); // подтянуть выключенную кнопку к плюсу, обойдёмся без внешних R элементов
}
void buttonEvent(bool isButtonPressed) {
if (isButtonPressed) {
digitalWrite(13, HIGH); // вкл. светодиод
} else {
digitalWrite(13, LOW); // выкл. светодиод
}
}
void buttonIteration() {
if (digitalRead(BUTTON_PIN) == HIGH) { // контакта нет, напряжение подтянулось к плюсу питания
if (buttonData < BUTTON_MAX_LVL) {
if (++buttonData == 128) {
buttonData = BUTTON_MAX_LVL;
buttonEvent(true); // выдать логическое срабатывание кнопки
}
}
} else { // контакт есть, напряжение погашено кнопкой до нуля
if (buttonData > BUTTON_MIN_LVL) {
if (--buttonData == 127) {
buttonData = BUTTON_MIN_LVL;
buttonEvent(false); // выдать логическое срабатывание кнопки
}
}
}
}
Тут что-то по теме продаётся http://arduino.ua/prod984-rele-tverdote … t-3-36-vdc, но я бы не рекомендовал ардуинщикам играться с напряжением 220 Вольт, если в квартире нет УЗО/дифавтомата. Даже настоящие взрослые электрики парами на задания ходят, чтобы второй всегда мог спасти первого
Поскольку сайт 123d.circuits.io приказал долго жить, выкладываю код сюда. См. подпрограмму transform_brightness:
#define STEP 3 // шаг изменения яркости
#define STEP_DELAY 20 // задержка (мс) при изменении яркости
#define LED_QTY 6 // количество светодиодов, подключённых к выходам с PWM
#define CYCLES_PER_MODE 7 // сколько волн яркости проходит перед сменой режима свечения
#define CYCLE_MODE_QTY 3 // количество режимов свечения
#define MAX_BRIGHT 255 // максимальная яркость свечения
const byte led_pins[LED_QTY] = {3, 5, 6, 9, 10, 11}; // соответствие выводов с ШИМ номерам светодиодов
byte led_brightness[LED_QTY]; // яркость
int brightness_step[LED_QTY]; // шаг изменения яркости
byte cycle_mode = 0;
int cycle_counter = 0;
bool cycle_state = false;
void setup() {
for (int i = 0; i < LED_QTY; i++) {
pinMode(led_pins[i], OUTPUT); // переключить все PWM выводы на выход
brightness_step[i] = STEP;
led_brightness[i] = (i + 1) * MAX_BRIGHT / LED_QTY;
}
pinMode(13, OUTPUT); // встроенный светодиод
}
byte transform_brightness(byte b) {
long t = (long(b) + 1) * b >> 8; // попытка линеаризовать воспринимаемую яркость
if (cycle_mode == 1 && t == 0) t = 1;
return byte(t);
}
void apply_brightness() {
for (int i = 0; i < LED_QTY; i++) {
analogWrite(led_pins[i], transform_brightness(led_brightness[i]));
}
if (led_brightness[LED_QTY - 1] > MAX_BRIGHT / 2) {
if (!cycle_state) {
cycle_state = true;
on_cycle_change();
}
digitalWrite(13, HIGH); // вкл. встроенный LED
} else {
cycle_state = false;
digitalWrite(13, LOW); // выкл. встроенный LED
}
}
void got_max_brightness(int &brght, int &stp) {
switch (cycle_mode) {
case 0: brght = MAX_BRIGHT; stp = -stp; break;
case 1: brght = 0; stp = STEP; break;
case 2: brght = MAX_BRIGHT; stp = -STEP; break;
}
}
void got_min_brightness(int &brght, int &stp) {
switch (cycle_mode) {
case 0: brght = 0; stp = -stp; break;
case 1: brght = 0; stp = STEP; break;
case 2: brght = MAX_BRIGHT; stp = -STEP; break;
}
}
void calculate_brightness() {
int new_brightness;
for (int i = 0; i < LED_QTY; i++) {
new_brightness = led_brightness[i] + brightness_step[i];
if (new_brightness > MAX_BRIGHT) {
got_max_brightness(new_brightness, brightness_step[i]);
} else if (new_brightness < 0) {
got_min_brightness(new_brightness, brightness_step[i]);
}
led_brightness[i] = (byte) new_brightness;
}
}
void on_cycle_change() {
if (cycle_counter++ > CYCLES_PER_MODE) {
cycle_counter = 0;
cycle_mode++;
if (cycle_mode >= CYCLE_MODE_QTY) {
cycle_mode = 0;
}
}
}
void loop() {
apply_brightness();
calculate_brightness();
delay(STEP_DELAY);
}
https://m.youtube.com/watch?v=M9hls9FVa3U
PS: Не подключайте много светодиодов напрямую к Arduino и не пытайтесь одновременно их включить, иначе можете сжечь микроконтроллер.
Вариант №2:
На компьютере запущен HTTP сервер Apache, Arduino по условию дёргает через GET на нём определённый адрес типа http://192.168.0.2/a/, можно даже параметры передать. В папке "a" сидит index.*, который на самом деле не статичный файл, а выполняемый скрипт или простейший CGI-модуль, который сделает всё, что нужно. Я на Delphi давным-давно так делал, правда под Windows дело было.
Как по условию открыть приложение ехе, или хотя бы ссылку в браузере?
1. Срабатывает "условие" на Arduino.
2. К Arduino подключён через усилитель или просто через ограничивающий резистор ИК-светодиод, который излучает сигнал с нужной командой.
3. На компьютере установлена плата ТВ-тюнера с функцией запуска настраиваемых приложений по команде с ИК-пульта, которая запускает батник или любой другой скрипт. Подойдёт любой девайс для управления компьютером по ИК.
4. Батник/скрипт творит любое чудо на компьютере.
Если текст переносится по строкам, то это символы CR и LF с кодами 13 и 10 (0D и 0A в шестнадцатиричном формате). Windows использует их парами, тогда как Linux'у и прочим хватает одного из них (гуглите). А экранчик Ардуинки может их просто отображать, а не выполнять.
По остальному надо документацию читать, если ничего не помогает)
Если в меню Инструменты в пункте Порт выбирать нечего, то и загружать прошивку некуда. Виноваты могут быть не вставшие как надо драйвера. Или даже забаненные китайские микросхемы клоны USB-COM преобразователей в официальных драйверах -- даже такие чудеса бывали.
Если портов видно несколько, то самое простое - это перебрать их по очереди, пытаясь отправить туда прошивку
Читаю, что китайцы умудрились сделать своё "furduino", которое не запитывается по USB. Что ж, выключенное устройство конечно в системе не появится, его сначала запитать надо дополнительными проводами.
Загуглил "arduino wake up on serial" и нашёл статью http://playground.arduino.cc/Learning/ArduinoSleepCode и обсуждение, где получилось понизить ток потребления до микроамперных значений https://arduino.stackexchange.com/questions/13167/put-atmega328-in-very-deep-sleep-and-listen-to-serial , там есть ссылка на очень полезную статью с измерениями и советами http://www.gammon.com.au/forum/?id=11497
Собираем робота,
для работы нужно определять его координаты в помещении.
На полу наклейки с баркодами, робот их читает и не теряется. Забавно. https://youtu.be/cLVCGEmkJs0?t=29
Если был бы уж совсем мороз, то мог бы замёрзнуть источник питания.
Карточка-пропуск с работы в "идеальных" условиях начинает срабатывать с расстояния 6 см. Маленькие брелки-токены (на фото выше) срабатывают, как я уже писал, с 3 см. Жёлтый брелок я брал на местном сайте http://arduino.ua/prod281-RFID_brelok, остальные я не выбирал, мне их дали.
Вопрос к тем кто уже пользовался данным модулем. Соответствует чувствительность (15см) заявленной производителем?
Не 15 см, а 15 мм точно работает. По крайней мере с комплектной антенной. Предел дальности срабатывания моего модуля -- 3 см с копейками. Домофон подъезда срабатывает ещё хуже
Будет срабатывать считыватель через металическую пластину, если да, то насколько упадет чувствительность(до скольки см)?
Через тонкую медь на стеклотекстолите не работает, через стальную крышку от коробки конфет тоже не хочет от слова совсем. Зато через ДСП столешницы и пластик -- без проблем. Тестовый стенд на фото:
тоже не смог добиться что бы он соответствовал написанному.
Покажите примеры надписей на карточке и от считывателя.
Переданный код в шестнадцатеричном формате: 2C 0077 55A2. Если разбить его на три группы, то получим: 2C, 0077 (десятичное значение 119), 55A2 (десятичное значение 21922), что соответствует номеру на RFID карте 119,21922.
Это же число, напечатаное на карте в десятичной форме – 0007820706, соответствует 7755A2 (HEX). Константа 2C передается всеми картами этой системы – идентификатор RFID системы. Именно указанное число в десятичной форме (0007820706) потребуется нам для эмуляции RFID ключа.
Последние данные, передаваемые картой – это контрольная сумма, которая позволит убедиться, что все данные были получены.
Это цитата из http://www.rlocman.ru/shem/schematics.html?di=113001
PS: На Arduino даже можно сделать RFID метку с нужным кодом: https://toschprod.wordpress.com/2013/08/05/rfid-spoofer/
Может GSM модуль отправлять смс на определенные номера телефонов с кодом, например ошибки в системе.
Да хоть рекламу курсов английского:
https://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS
https://forum.arduino.cc/index.php?topic=362390.0
С автомобилями нужен особый подход. Купили много-много лет тому назад GPS-ку с блоком питания 9...35 Вольт, поставили в машину. Блок питания сгорел через неделю. Заменили по гарантии - сгорел. GPS-ка -- туристическая, а не автомобильная. Оказывается, автомобильные имеют утроенную защиту по питанию.
якими акумуляторами можна його заживити. Бюджет на акумулятори - до 100грн за штуку.
Мало денег. Но можно взять на OLX по 40 грн китайских аккумов "18650". На них написана ёмкость 8800 мАч, реально там в 10 раз меньше, но это не беда :-)
чи знайти IR-датчик з реле, яке буде включати ардуіно?
Тільки якщо увімкнене реле своєю котушкою не буде споживати струму більше, аніж сама Ардуіно.
В предыдущем скетче для другого сетевого модуля определение того, какая ссылка была нажата, сделано так:
if (strstr((char *)Ethernet::buffer + pos, "GET /?ON") != 0) {
setRelayState(true);
} else if(strstr((char *)Ethernet::buffer + pos, "GET /?OFF") != 0) {
Т.е. просто ищем в буфере приёма запрос с "/?ON" или "/?OFF". А в этом новом скетче где определение ссылки адреса с командой внутри?
Доступ к внутренней энергонезависимой памяти микроконтроллера ограничивается:
* внешним программаторам -- битами блокировки LB1 и LB2;
* внутреннему программному коду (бутлоадеру или прикладной программе) -- битами блокировки BLB01, BLB02, BLB11 и BLB12.
Если запретить читать флэшку внутренней программе, но не запрещать программатору, то программатором прочитать можно будет.
А ничего что в работе двигателя принимает участие только одна обмотка ??? Вторая которая с кандером нужна только для запуска. Для подтверждения включите только ту обмотку, которая с конденсатором, и крутаните вал рукой Городите огород....
Конденсатор даёт сдвиг фазы, две обмотки в результате создают вращающееся магнитное поле. Как же оно вращаться-то будет с одной обмоткой без дополнительных ухищрений?
а с хлорным железом "не дружу"
Сделал так пару мелких плат, но даже не знал, насколько оно вредное. Но сейчас же придумали травить кухонной химией: "в 100 мл аптечной 3% перекиси водорода растворяется 30 г лимонной кислоты и 5 г поваренной соли. Этого раствора должно хватить для травления 100 см2 меди, толщиной 35мкм."
К этом дисплею http://arduino-ua.com/prod1178-oled-displei-modyl есть комментарий, который предлагает скачать примеры и библиотеку тут: https://github.com/adafruit/Adafruit_SSD1306
Примеров к этому датчику температуры http://arduino-ua.com/prod190-Datchik_t … ri_DS18B20 в инете море, даже "схема" подключения прямо на картинках магазина. В архиве примеры есть и библиотека http://arduino-project.net/DallasTemperature.rar . Или вот статья http://www.hobbytronics.co.uk/ds18b20-arduino