Народное программируемое реле
- Phazz
- Полковник
- Сообщения: 3299
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 289 раз
- Поблагодарили: 151 раз
Re: Народное программируемое реле
Что-то мне кажется вы сгущаете краски. Нелинейность у есп32 есть на краях, в середине не скажу что она конская. Вот шумов многовато. Но фильтр довольно неплохо справляется с этим. С вакуумной камерой это конечно жесть, вы простите какой точности хотите добиться? Такого даже в лаборатории метрологии не делают)
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
Использовать или нет АЦП есп определяется задачей . Если нужен точный АЦП , то нужно использовать модуль расширения специальный , делать супер АЦП на все случаи жизни (задачи) не целесообразно.
Электронщик до мозга костей и не только
-
- Сержант
- Сообщения: 149
- Зарегистрирован: 27 мар 2025, 12:13
- Имя: Коля
- Поблагодарили: 10 раз
Re: Народное программируемое реле
ну тогда мучийте есп https://esp32cube.com/post/esp32-read-p ... or-values/
формулу от туда я вам скидывал уже
можете попробовать готовый код залить
но я бы смотрел в сторону хотябы 1115
формулу от туда я вам скидывал уже
можете попробовать готовый код залить
но я бы смотрел в сторону хотябы 1115
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
Когда модульное исполнение можно смотреть в любую сторону , хоть 24 бита, 8 каналовlfgjikjjyj писал(а): 26 июн 2025, 15:22 ну тогда мучийте есп https://esp32cube.com/post/esp32-read-p ... or-values/
формулу от туда я вам скидывал уже
можете попробовать готовый код залить
но я бы смотрел в сторону хотябы 1115
Формулы я как то сам вывожу.
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
Получил платы для 3д puzzle- и в помойку - перепутал и ни кто не проверил, заложил в модули случайно разьем с шагом 2мм, а в материнке 2.54. Значит еще на месяц откладывается реализация... Жаль ,что не помогаете проверкой схем , вроде общая разработка. Модули исправил , заказываю еще раз .Дело не в деньгах, а времени. И так делаю несколько заказов и разработок , времени на реле мало остается ...Без вашего активного участия долго делается...Выкладываю схемы в формате Изи Иди
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
-
- Рядовой
- Сообщения: 15
- Зарегистрирован: 28 ноя 2024, 10:56
- Имя: Антон
- Благодарил (а): 29 раз
- Поблагодарили: 13 раз
Re: Народное программируемое реле
Кстати, рекомендую распечатать гербер-файл на бумагу, на нём можно прикинуть "в живую" соответствие деталей. Этот способ помогает, так как на экране это совсем не очевидно.
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
Какое например? Как состыковать две разные платы
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
Спасибо, я имел ввиду состыковка не столько схем, столько печатных плат при конструировании, с разьемными соединениями.MihailK писал(а): 14 июл 2025, 18:42Например так https://www.elm-c.ru/blog/razrabotka-el ... me-chast-1
Электронщик до мозга костей и не только
-
- Сержант
- Сообщения: 158
- Зарегистрирован: 05 дек 2020, 23:42
- Имя: Михаил
- Поблагодарили: 3 раза
Re: Народное программируемое реле
Когда рисуете схему, в программе из библиотеки выбирается не символ, а конкретный компонент, который есть у вас. Поэтому косяков с разным шагом и несоответствием посадочных мест не бывает.
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
спасибоMihailK писал(а): 14 июл 2025, 23:14 Когда рисуете схему, в программе из библиотеки выбирается не символ, а конкретный компонент, который есть у вас. Поэтому косяков с разным шагом и несоответствием посадочных мест не бывает.
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
Получил платы, делаю монтаж и тестирование, источник питания, процессор, материнскую плату протестировал( позже выложу схемы и печать) протестировал . Дошел до платы ввода\вывода с микросхемой расширения МСР23008 (8 каналов) и застрял - нет блоков. Есть биб-ка адафрут МСР23008 и примеры на ввод\вывод , может кто для ускорения тестирования возьмется сделать пользовательский блок??? Примерыы-
Вывод-
#include <Wire.h>
#include "Adafruit_MCP23008.h"
// Basic toggle test for i/o expansion. flips pin #0 of a MCP23008 i2c
// pin expander up and down. Public domain
// Connect pin #1 of the expander to Analog 5 (i2c clock)
// Connect pin #2 of the expander to Analog 4 (i2c data)
// Connect pins #3, 4 and 5 of the expander to ground (address selection)
// Connect pin #6 and 18 of the expander to 5V (power and reset disable)
// Connect pin #9 of the expander to ground (common ground)
// Output #0 is on pin 10 so connect an LED or whatever from that to ground
Adafruit_MCP23008 mcp;
void setup() {
mcp.begin(); // use default address 0
mcp.pinMode(0, OUTPUT);
}
// flip the pin #0 up and down
void loop() {
delay(100);
mcp.digitalWrite(0, HIGH);
delay(100);
mcp.digitalWrite(0, LOW);
}
ввод-
#include <Wire.h>
#include "Adafruit_MCP23008.h"
// Basic pin reading and pullup test for the MCP23008 I/O expander
// public domain!
// Connect pin #1 of the expander to Analog 5 (i2c clock)
// Connect pin #2 of the expander to Analog 4 (i2c data)
// Connect pins #3, 4 and 5 of the expander to ground (address selection)
// Connect pin #6 and 18 of the expander to 5V (power and reset disable)
// Connect pin #9 of the expander to ground (common ground)
// Input #0 is on pin 10 so connect a button or switch from there to ground
Adafruit_MCP23008 mcp;
void setup() {
mcp.begin(); // use default address 0
mcp.pinMode(0, INPUT);
mcp.pullUp(0, HIGH); // turn on a 100K pullup internally
pinMode(13, OUTPUT); // use the p13 LED as debugging
}
void loop() {
// The LED will 'echo' the button
digitalWrite(13, mcp.digitalRead(0));
}
Вывод-
#include <Wire.h>
#include "Adafruit_MCP23008.h"
// Basic toggle test for i/o expansion. flips pin #0 of a MCP23008 i2c
// pin expander up and down. Public domain
// Connect pin #1 of the expander to Analog 5 (i2c clock)
// Connect pin #2 of the expander to Analog 4 (i2c data)
// Connect pins #3, 4 and 5 of the expander to ground (address selection)
// Connect pin #6 and 18 of the expander to 5V (power and reset disable)
// Connect pin #9 of the expander to ground (common ground)
// Output #0 is on pin 10 so connect an LED or whatever from that to ground
Adafruit_MCP23008 mcp;
void setup() {
mcp.begin(); // use default address 0
mcp.pinMode(0, OUTPUT);
}
// flip the pin #0 up and down
void loop() {
delay(100);
mcp.digitalWrite(0, HIGH);
delay(100);
mcp.digitalWrite(0, LOW);
}
ввод-
#include <Wire.h>
#include "Adafruit_MCP23008.h"
// Basic pin reading and pullup test for the MCP23008 I/O expander
// public domain!
// Connect pin #1 of the expander to Analog 5 (i2c clock)
// Connect pin #2 of the expander to Analog 4 (i2c data)
// Connect pins #3, 4 and 5 of the expander to ground (address selection)
// Connect pin #6 and 18 of the expander to 5V (power and reset disable)
// Connect pin #9 of the expander to ground (common ground)
// Input #0 is on pin 10 so connect a button or switch from there to ground
Adafruit_MCP23008 mcp;
void setup() {
mcp.begin(); // use default address 0
mcp.pinMode(0, INPUT);
mcp.pullUp(0, HIGH); // turn on a 100K pullup internally
pinMode(13, OUTPUT); // use the p13 LED as debugging
}
void loop() {
// The LED will 'echo' the button
digitalWrite(13, mcp.digitalRead(0));
}
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
вот пины входов и выходов
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
вот сама библиотека
[marq=left/*!
* @file Adafruit_MCP23008.h
*/
#ifndef _ADAFRUIT_MCP23008_H
#define _ADAFRUIT_MCP23008_H
#include <Adafruit_BusIO_Register.h>
#include <Adafruit_I2CDevice.h>
#include <Arduino.h>
/*!
* @brief Class that stores state and functions for interacting with MCP23008
* chip
*/
class Adafruit_MCP23008 {
public:
bool begin(uint8_t addr = 0x20, TwoWire *wire = &Wire);
bool pinMode(uint8_t p, uint8_t d);
bool digitalWrite(uint8_t p, uint8_t d);
bool pullUp(uint8_t p, uint8_t d);
uint8_t digitalRead(uint8_t p);
uint8_t readGPIO(void);
bool writeGPIO(uint8_t);
private:
Adafruit_I2CDevice *i2c_dev = NULL; ///< Pointer to I2C bus interface
uint8_t _i2caddr;
uint8_t read8(uint8_t addr);
bool write8(uint8_t addr, uint8_t data);
};
#define MCP23008_ADDRESS 0x20 //!< MCP23008 serial address
// registers
#define MCP23008_IODIR 0x00 //!< I/O direction register
#define MCP23008_IPOL 0x01 //!< Input polarity register
#define MCP23008_GPINTEN 0x02 //!< Interrupt-on-change control register
#define MCP23008_DEFVAL \
0x03 //!< Default compare register for interrupt-on-change
#define MCP23008_INTCON 0x04 //!< Interrupt control register
#define MCP23008_IOCON 0x05 //!< Configuration register
#define MCP23008_GPPU 0x06 //!< Pull-up resistor configuration register
#define MCP23008_INTF 0x07 //!< Interrupt flag register
#define MCP23008_INTCAP 0x08 //!< Interrupt capture register
#define MCP23008_GPIO 0x09 //!< Port register
#define MCP23008_OLAT 0x0A //!< Output latch register
#endif
][/marq]
[marq=left/*!
* @file Adafruit_MCP23008.h
*/
#ifndef _ADAFRUIT_MCP23008_H
#define _ADAFRUIT_MCP23008_H
#include <Adafruit_BusIO_Register.h>
#include <Adafruit_I2CDevice.h>
#include <Arduino.h>
/*!
* @brief Class that stores state and functions for interacting with MCP23008
* chip
*/
class Adafruit_MCP23008 {
public:
bool begin(uint8_t addr = 0x20, TwoWire *wire = &Wire);
bool pinMode(uint8_t p, uint8_t d);
bool digitalWrite(uint8_t p, uint8_t d);
bool pullUp(uint8_t p, uint8_t d);
uint8_t digitalRead(uint8_t p);
uint8_t readGPIO(void);
bool writeGPIO(uint8_t);
private:
Adafruit_I2CDevice *i2c_dev = NULL; ///< Pointer to I2C bus interface
uint8_t _i2caddr;
uint8_t read8(uint8_t addr);
bool write8(uint8_t addr, uint8_t data);
};
#define MCP23008_ADDRESS 0x20 //!< MCP23008 serial address
// registers
#define MCP23008_IODIR 0x00 //!< I/O direction register
#define MCP23008_IPOL 0x01 //!< Input polarity register
#define MCP23008_GPINTEN 0x02 //!< Interrupt-on-change control register
#define MCP23008_DEFVAL \
0x03 //!< Default compare register for interrupt-on-change
#define MCP23008_INTCON 0x04 //!< Interrupt control register
#define MCP23008_IOCON 0x05 //!< Configuration register
#define MCP23008_GPPU 0x06 //!< Pull-up resistor configuration register
#define MCP23008_INTF 0x07 //!< Interrupt flag register
#define MCP23008_INTCAP 0x08 //!< Interrupt capture register
#define MCP23008_GPIO 0x09 //!< Port register
#define MCP23008_OLAT 0x0A //!< Output latch register
#endif
][/marq]
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
Блок для модуля Puzzle 4DI-4DO на базе mcp23008
Модуль проверен- работает! Библиотеки в блоке.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
пОКА выкладываю сюда проверенные схемы и платы
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
Ну и корпус подшаманил
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
-
- Рядовой
- Сообщения: 41
- Зарегистрирован: 16 апр 2021, 22:22
- Имя: Василий
- Rovki
- Полковник
- Сообщения: 5837
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 78 раз
- Поблагодарили: 242 раза
- Контактная информация:
Re: Народное программируемое реле
проверял на резисторе, датчик только пришел ,еще не глядел...
Электронщик до мозга костей и не только
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя