Ви не увійшли.
Honey, людина просила простий приклад. Хоча ваш код і виконує його забаганку, але навряд чи він розбереться у ньому.
Я хочу попробовать понять на простом примере
Led светит 1 секунду
Led не светит 0.5 секунды---
Можем начать конечно с какого-то простого примера
unsigned long t, period;
unsigned long period_on = 1000; //Led светит 1 секунду
unsigned long period_off = 500; //Led не светит 0.5 секунды
bool status = LOW; //задаем начальное состояние светодиода - выключено
int ledPin = 11;
void setup() {
pinMode(ledPin, OUTPUT);
t = millis();
}
void blinkSOS() {
if (status == LOW) period = period_off; //проверяем в коаком состоянии должен быть светодиод, если должен быть выключен то период = интервалу выключения
else period = period_on; // иначе период равен времени включенного состояния
if (millis() - t >= period) { //если заданный интервал прошел
t = millis(); //запоминаем новое время
status = !status; //меняем состояние светодиода на противоположное
digitalWrite(ledPin, status); //и выводим его на индикацию
}
}
void loop() {
blinkSOS();
}
Есть возможность с помощью в настройке.
Вся "настройка" заключается в установке драйверов, конечно, при заведомо исправном оборудовании.
Выкладывайте скрины диспетчера устройств до подключения наны, после подключения, скрин из arduino ide - что выбираете перед заливкой кода.
Какая ОС, версия Arduino ide, что написано на чипах нанки?
в менеджере плат
Не за все деньги мира.
А за какую их часть?
Подробности опишу.
Описывай
#define wled 2
#define yled 3
#define rled 4
#define mov 5
#define out 6
unsigned long t1, t2, t3;
bool led1 = 1;
bool led2 = 1;
enum state
{
white,
yellow,
red
};
state current = white;
void setup() {
pinMode(wled, OUTPUT);
pinMode(yled, OUTPUT);
pinMode(rled, OUTPUT);
pinMode(out, OUTPUT);
pinMode(mov, INPUT);
digitalWrite(wled, LOW);
digitalWrite(yled, LOW);
digitalWrite(rled, LOW);
digitalWrite(out, LOW);
}
void loop() {
switch (current) {
case white:
if (millis() - t2 >= (led1 ? 300 : 300)) {
t2 = millis();
digitalWrite(wled, led1);
led1 = !led1;
}
if (millis() - t1 >= 5000) {
digitalWrite(wled, LOW);
t2 = millis();
current = yellow;
}
break;
case yellow:
if (millis() - t3 >= (led2 ? 300 : 300)) {
t3 = millis();
digitalWrite(yled, led2);
led2 = !led2;
}
if ( millis() - t2 >= 10 * 60000) {
digitalWrite(yled, LOW);
current = red;
}
if (digitalRead(mov)) t2 = millis();
break;
case red:
if (digitalRead(mov)) {
digitalWrite(rled, HIGH);
digitalWrite(out, HIGH);
break;
}
}
}
якщо я правильно розумію як працює міліс то (
digitalWrite(vbochku, LOW);
if (millis() - last_time == 50000) {
last_time = millis();
digitalWrite(vbochku, HIGH);
}
) ось цей кусок коду повинен працювати на мою думку так: релле включається, і через 50 секунд виключається
Ні, ви не зовсім правильно розумієте роботу мілліс. Коли ви вмикаєте реле вам необхідно запам’ятати цей час і потім перевіряти чи не пройшов заданий інтервал. А ви робите навпаки
там де мені потрыбно подати напругу пишу low)
Якщо ви використовуєте модулі китайських реле - то це нормально. Вони вмикаються низьким рівнем, а вимикаються високим
Написав на пошту
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>
const char* ssid = "SSID";
const char* password = "PASS";
BearSSL::WiFiClientSecure client;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
client.setInsecure();
}
void getStat() {
HTTPClient https;
https.begin(client, "https://russianwarship.rip/api/v2/statistics/latest");
int httpCode = https.GET();
if (httpCode > 0) {
if (httpCode == HTTP_CODE_OK) {
String payload = https.getString();
Serial.println(payload);
} else {
Serial.printf("[HTTPS] GET... failed, error: %sn", https.errorToString(httpCode).c_str());
}
https.end();
}
}
void loop() {
getStat();
delay(10000);
}
Допоможіть написати такий код .
Так що конкретно необхідно: допомога в написанні чи надати готовий код?
г0cть там Ви дились схему а недодивились що є ще 2 резістора і 2 транзістора , нічого страшного
нехай це буде доповнення для інших .
Ці резистори і транзистори встановлюються на таких платах
У вас, якщо я правильно зрозумів, голий модуль без цього всього. Нічого страшного - нехай це буде доповнення для інших
Documents Arduino libraries IRremote src private
Я перепробував різні версії бібліотеки IRremote (тут використана версія 2.8.0) та перечитав багато різного матеріалу, але так і не найшов відповіді.
Не там і не те читав.
Схема складається з Arduino micro
Пін 3 в бібліотеці заданий як вихідний автоматично.
Пін 3 це для "звичайної" ардуіни типу Uno, Nano, mini на Atmega328. Arduino micro - це трохи "інша" ардуіна на Atmega32U4. Тому відкривай бібліотеку і дивись які піни використовуються для цього МК.
Нет, в самом простом - так
А, ну да, про раз в 3 минуты то я прощелкал
В самом простом варианте как-то так
#define pump1 4
#define pump2 5
#define sensor A0
int ph_min = 300; //?????????????????????
int ph_max = 320; //?????????????????????
int ph;
unsigned long t = 0;
bool f_pump1 = 0;
bool f_pump2 = 0;
bool flag = 0;
void setup() {
pinMode(pump1, OUTPUT);
pinMode(pump2, OUTPUT);
digitalWrite(pump1, LOW);
digitalWrite(pump2, LOW);
}
void loop() {
ph = analogRead(A0);
if (!flag) {
if (ph < ph_min) {
flag = 1;
f_pump2 = 1;
t = millis();
digitalWrite(pump2, HIGH);
}
if (ph > ph_max) {
flag = 1;
f_pump1 = 1;
t = millis();
digitalWrite(pump1, HIGH);
}
if (ph >= ph_min && ph <= ph_max) {
f_pump1 = 0;
f_pump2 = 0;
digitalWrite(pump1, LOW);
digitalWrite(pump2, LOW);
}
}
if (f_pump1 && millis() - t >= 4000) {
digitalWrite(pump1, LOW);
f_pump1 = 0;
flag = 0;
}
if (f_pump2 && millis() - t >= 4000) {
digitalWrite(pump2, LOW);
f_pump2 = 0;
flag = 0;
}
}
Васятко пише:А стандартный блинк с каким периодом мигает?
если я правильно понял: загрузил Blink из примеров
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);Nano: чуть меньше 8 раз в минуту или 1раз в 8с
UNO: 30 раз в минуту или 1раз в 2сполучается что в моем Nano 1c длится 4с. Это значит тактовая частота заниженая? Это брак или норма для Nano?
Или кварц не пропаян/не тот номинал или перешить загрузчик, возможно фьюзы выставлены на работу от внутреннего генератора.
https://wokwi.com/projects/336793704873329234
Хотелось "напрямую" достучатся по I2C. И теперь не ясно где именно ошибка или хотя бы как ее выявить.
В таком случае я бы начал с простого
#include <Wire.h>
#define disk1 0x50 //Address of 24С08 eeprom chip
void setup(void)
{
Serial.begin(9600);
Wire.begin();
unsigned int address = 0;
writeEEPROM(disk1, address, 123);
delay(10);
Serial.print(readEEPROM(disk1, address), DEC);
}
void loop(){}
void writeEEPROM(int deviceaddress, unsigned int eeaddress, byte data )
{
Wire.beginTransmission((byte)deviceaddress);
Wire.write((byte)(eeaddress));
Wire.write(data);
Wire.endTransmission();
delay(5);
}
byte readEEPROM(int deviceaddress, unsigned int eeaddress )
{
byte rdata = 0xFF;
Wire.beginTransmission((byte)deviceaddress);
Wire.write((byte)(eeaddress));
Wire.endTransmission();
Wire.requestFrom((byte)deviceaddress,1);
if (Wire.available()) rdata = Wire.read();
return rdata;
}
А потом бы уже разбирался с этими строками
Wire.write((int)(eeaddress >> 8)); // MSB
Wire.write((int)(eeaddress & 0xFF)); // LSB
что и где не работает
При загрузке плата от чего запитана? Сталкивался с тем что CH340 капризны в плане питания. Да еще и китайцы накосячили с включением не по даташиту. При напряжении на usb <5В глючит их. Попробуй еще подать внешнее питание.
Взять тестер, мелкоскоп, схему с тырнета и пройтись по цепи uart и reset между сh и avr. Проверить качество пайки, номиналы резисторов, отсутствие соплей и т.д. Если все нормально - тогда связаться с администрацией магазина и либо сразу договориться об обмене, либо с их разрешения (чтобы потом не возникло не гарантийных случаев), если конечно есть желание и возможность, перешить загрузчик или просто прошить какой нибудь код по ISP. А дальше по ситуации. Оживет - хорошо, нет - на обмен.
в настройках выбрана плата uno
А если выбрать Nano(old bootloader)? Кто его знает что там за загрузчик китайцы залили
Диодами моргает как положено.
Какими - rx/tx или L? Не пробовали в момент начала прошивки нажать reset?
Драйвера на СН340 ставил?
На ціх опорах на випадок необхідності може бути виконано пониження напруги, якщо наприклад кнопка це напруга в 12-15 v.
Бред. INPUT_PULLUP, кнопка на землю и не морочь йайголову всякой ерундой