SIO, ох... ясно )
спасибо.
Пардон. Возможно ошибся. Слышал, что запрещают (не таможня, а перевозить самолетом).
Пытался заказать аккумулятор - какой не наберу - Alliexpress не давал выбрать страну отправления.
Однако вот прямо сейчас - получилось...
шлют аккумы нормально в рб. и с бэнггуд, и с алишки, и с таобао карго едет.
иногда приходят быстро, явно не морем. так что заказывайте и не рассуждайте, увидите как все получится )
больше 10000 мач есть какая то сложность, но опять же - это проблема вырастает не на одиночных аккумах.
_CAHEK_:господа! в ролльшторы кто нить ставил моторы? так чтоб дешево и сердито!?
зависит от размера. в Китае есть микромоторы с редуктором - они обладают достаточной мощностью для этих целей, но нужно ставить концевики.
сам делал и все забыл
куда перемычку тыкнуть?
земля?
плюс?
так и не вспомнил
методом научного тыка оказалось на плюс
офлайн
volkenturbo
Senior Member
|
|
1644 |
16 лет на сайте Город:
|
Здравствуйте.
Нужна помощь в сборке копировальшика чипов для домофонов на базе
модуля rc522.
Основная проблема-не могу найти готовый код на запись в rfid.
Буду благодарен за любую помощь
офлайн
volkenturbo
Senior Member
|
|
1644 |
16 лет на сайте Город:
|
Как тогда на нем собирают замки и мигалки?
На карту,идущую с ним в комплекте,записывается же информация или я глубоко заблуждаюсь?
Поясните.
volkenturbo:Как тогда на нем собирают замки и мигалки?
На карту,идущую с ним в комплекте,записывается же информация или я глубоко заблуждаюсь?
Поясните.
какие замки и мигалки?
PN532 умеет записывать, но я, если честно, не пробовал еще. Модуль года два без дела лежит.
volkenturbo:Здравствуйте.
Нужна помощь в сборке копировальшика чипов для домофонов на базе
модуля rc522.
Основная проблема-не могу найти готовый код на запись в rfid.
Буду благодарен за любую помощь
У большинства домофонов, RFID низкочастотный (125кГц)
а RC522 работает на 13,56Мгц
Таких домофонов крайне мало.
офлайн
volkenturbo
Senior Member
|
|
1644 |
16 лет на сайте Город:
|
GtspeeD:volkenturbo:Здравствуйте.
Нужна помощь в сборке копировальшика чипов для домофонов на базе
модуля rc522.
Основная проблема-не могу найти готовый код на запись в rfid.
Буду благодарен за любую помощьУ большинства домофонов, RFID низкочастотный (125кГц)
а RC522 работает на 13,56Мгц
Таких домофонов крайне мало.
Я купил в Китае копировальщик ключей на 125 кГц.Из 3-ех моих чипов он скопировал 1 и ещё скопировал карточку-пропуск.И на этом всё...
Потому что остальные чипы на 13,56. А именно от домофона Цифрал и от Дк-800.
Я бы хотел собрать копировальщик чипов на 13,56.
Добрый день. Ребят, подскажите плиз новичку. Подключил к TFT экрану датчик температуры (ds18b20) и датчик давления. Хочу сделать, допустим, что бы по кнопке выводилась информация либо с одного датчика, либо с другого. Т.е. по умолчанию запускается информация с температурой , жму кнопку- отображается данные давления. Использовал функцию case, но столкнулся с проблемой, что при использовании этой функции внутри неё данные не обновляются. Сделать обновление данных через очистку экрана (fillScreen) можно, но нужно что бы обновлялись только данные. Если может кто-то дать дельный совет- буду благодарен.
Drosha:Benjamin_, пример кода скиньте, пока ничего непонятно
// Подключение ТФТ
#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9
#define TFT_SCLK 13
#define TFT_MOSI 11
// Параметры датчика DS18B
// Устанавливаем пин 3 на DS18B20
#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
float tempMin = 999;
float tempMax = 0;
int barra = 0;
int regim = 0;
int knopka = 2;
int flag = 0;
char conta = 0;
DallasTemperature sensors(&oneWire);
DeviceAddress sensor1;
//Инициализируем дисплей
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
void setup(void) {
pinMode(knopka, INPUT);
Serial.begin(9600);
sensors.begin();
// Находим и показываем адреса датчика
Serial.println("Localizando sensor DS18B20...");
Serial.print("Foram encontrados ");
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(" sensores.");
if (!sensors.getAddress(sensor1, 0))
Serial.println("Sensor nao encontrado !");
// Показываем адрес датчика находится в шине
Serial.print("Endereco sensor: ");
mostra_endereco_sensor(sensor1);
Serial.println();
//Инициализируем ТФТ
tft.initR(INITR_BLACKTAB); // You will need to do this in every sketch
}
void loop()
{
if (digitalRead(knopka) == HIGH && flag == 0) {
delay(100);
regim = ++regim % 2;
setMode(regim);
}
if (digitalRead(knopka) == LOW && flag == 1) //если кнопка НЕ нажата и переменная flag равна - 1 ,то ...
{
delay(100);
flag = 0; //обнуляем переменную "knopka"
}
}
void apaga_linha (int16_t x, int16_t y)
{
tft.fillRect(x, y, 50, 16, ST7735_BLACK);
}
void termo (void)
{
tft.drawRect(4, 11, 9, 100, ST7735_WHITE);
tft.fillRect(5, 12, 7, barra, ST7735_YELLOW);
tft.drawRect(40, 4, 119, 122, ST7735_MAGENTA);
//Рисунок термометра
tft.drawLine(14, 11, 17, 11, ST7735_WHITE); // LINHA DE 100
tft.drawLine(13, 86, 16, 86, ST7735_WHITE); // LINHA DE 75
tft.drawLine(13, 36, 16, 36, ST7735_WHITE); // LINHA DE 25
tft.drawLine(13, 61, 16, 61, ST7735_WHITE); // LINHA DE 50
tft.drawLine(14, 110, 16, 110, ST7735_WHITE); // LINHA DE 0
tft.drawLine(13, 98, 14, 98, ST7735_WHITE); //
tft.drawLine(13, 73, 14, 73, ST7735_WHITE); //
tft.drawLine(13, 48, 14, 48, ST7735_WHITE); //
tft.drawLine(13, 23, 14, 23, ST7735_WHITE); // L
tft.drawCircle(8, 118, 8, ST7735_WHITE);
tft.fillCircle(8, 118, 7, ST7735_RED);
}
void mostra_endereco_sensor(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 8; i++)
{
// Adiciona zeros se necessário
if (deviceAddress < 16) Serial.print("0");
}
}
void setMode(int regim) {
switch (regim) {
case 0:
tft.fillScreen(ST7735_BLACK);
//tft print function!
tft.setTextColor(ST7735_YELLOW);
tft.setRotation(3);
tft.setTextSize(2);
tft.setCursor(35, 10);
tft.println(" TEMP = C");
tft.setTextSize(1);
tft.setCursor(131, 10);
tft.println("O");
termo();
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(0);
tft.setCursor(19, 59);
tft.print("50");
tft.setTextSize(0);
tft.setCursor(19, 106);
tft.print("0");
tft.setTextSize(0);
tft.setCursor(19, 7);
tft.print("100");
tft.setTextSize(0);
tft.setCursor(19, 82);
tft.print("25");
tft.setTextSize(0);
tft.setCursor(19, 32);
tft.print("75");
tft.setTextColor(ST7735_BLUE);
tft.setTextSize(2);
tft.setCursor(10, 40);
tft.print(" CUR");
tft.setTextSize(2);
tft.setCursor(20, 65);
tft.print(" MIN");
tft.setTextSize(2);
tft.setCursor(20, 90);
tft.print(" MAX");
// Информация датчика темп.
if (sensors.getAddress(sensor1, 0))
{
sensors.requestTemperatures();
float tempC = sensors.getTempC(sensor1);
// Atualiza temperaturas minima e maxima
if (tempC < tempMin)
{
tempMin = tempC;
}
if (tempC > tempMax)
{
tempMax = tempC;
}
barra = (int)tempC;
// Отображаем на ТФТ
tft.setTextColor(ST7735_RED);
apaga_linha(100, 40);
tft.setTextSize(2);
tft.setCursor(100, 40);
tft.println(tempC, 1);
//tft.print("C");
tft.setTextColor(ST7735_GREEN);
apaga_linha(100, 65);
tft.setCursor(100, 65);
tft.println(tempMin, 1);
tft.setTextColor(ST7735_YELLOW);
apaga_linha(100, 90);
tft.setCursor(100, 90);
tft.println(tempMax, 1);
tft.setTextColor(ST7735_GREEN);
tft.setTextSize(1);
apaga_linha(99, 104);
tft.setCursor(45, 110);
tft.print(" SENSOR OK ");
if (tempMin > 50)
tempMin = 999;
tft.fillRect(5, 12, 7, 99, ST7735_RED);
tft.fillRect(5, 12, 7, 100 - barra, ST7735_BLACK);
}
else //(!sensors.getAddress(sensor1, 0))
{
tft.setTextColor(ST7735_RED);
tft.setTextSize(1);
apaga_linha(99, 104);
tft.setCursor(45, 110);
tft.print(" SENSOR ERRO ");
tempMin = 999;
tempMax = 0;
}
//delay(1000);
conta++;
if (conta == 1)
{
tft.setTextSize(1);
tft.setCursor(45, 110);
tft.print(" |");
}
if (conta == 2)
{
tft.setTextSize(1);
tft.setCursor(45, 110);
tft.print(" /");
}
if (conta == 3)
{
tft.setTextSize(1);
tft.setCursor(45, 110);
tft.print(" -");
}
if (conta == 4)
{
tft.setTextSize(1);
tft.setCursor(45, 110);
tft.print(" \\");
conta = 1;
}
delay(500);
break;
case 1:
tft.fillScreen(ST7735_BLACK);
tft.setRotation(3);
tft.setTextSize(2); // Определяем размер шрифта
tft.setCursor(5, 60); // Устанавливаем курсор в левый верхний угол области вывода
tft.setTextColor(ST7735_BLUE); // Определяем цвет вывода на дисплей
tft.print("loading...");
break;
default:
break;
}
}
Только в данном примере case 0- датчик, а case 1 просто текст.
200 градусов мерять?
Есть терморезисторов пачка NTK 100k при нагреве до 200 грудусов падает до 10к
Какое решение посоветуете?
Искать таблицу для данного типа терморезистора?
Заниматься сравнением двух массивов?
Результат выводить на ЖКИ?
Есть очень тяжелый код для данного решения. Может пнете в проверенном направлении с кодом в полбита?
art100:200 градусов мерять?
Есть терморезисторов пачка NTK 100k при нагреве до 200 грудусов падает до 10к
Какое решение посоветуете?
Я вот по этой статье делал http://arduino-diy.com/arduino-thermistor
В атмегу 8 вошло и место осталось. Показывает довольно точно 1, 2 градуса до 250 менял, термистор 300кОм при 25гр. принтерный.
Если надо облегчить код, то нужно подгонять код под значения без запятой, но точность пострадает естественно.
Либо таблицу делать, можно пару замеров калибровочных сделать, для постоянно используемых значений и записать адц на листок, повесить над устройством и по нему ориентироваться в показаниях, тогда код вообще мелкий будет.
SIO:art100:200 градусов мерять?
Есть терморезисторов пачка NTK 100k при нагреве до 200 грудусов падает до 10к
Какое решение посоветуете?Я .. делал ... нужно подгонять код ...Либо таблицу....записать ...на листок, повесить над устройством и по нему ориентироваться в показаниях, тогда код вообще мелкий будет.
ух-ты
спасибо
я уже думал надо будет тысячи строк разбирать с таблицами
спасибо посмотрю
опечатался
NTC 100 килоомные китайские проверенные боем лежат в стекле но орентированны на серьезный код за год не разберешся
скопипастил
Написал
Проверил
Градусы приблизительно верные.
По крайне мере тела человека я проверил свыше 100 градусов горячо палцами лапать
тэкс теперь таблицы шукать для NTC 100k