#1 Re: Програмування Arduino » Потрібна допомога, tm1637, ds3231, NTC 3950 » 2023-08-26 08:47:50

виявляється у мене ардуіна нано 3 з мк wavgat. Буду пробувати ставити ядро для нього можливо потом запрацюэ
А ще замовив нано на мк атмега якщо нерозбуруся то буду на ній робити.
IMG-f2d662e3393cf806dbebde127a553efc-V.jpg

#2 Re: Програмування Arduino » Потрібна допомога, tm1637, ds3231, NTC 3950 » 2023-08-19 11:14:08

г0cть пише:
Shylz пише:

Пробував інші бібліотеки то щоб запрацювали коректно хочаб часи потрібно було разів з 2 зробити ресет
А яку краще використати бібліотеку на вашу думку.

З терморезистором взагалі без бібліотек працюю

Можете поділитись кодом для термістора NTC3950 100k

#3 Re: Програмування Arduino » Потрібна допомога, tm1637, ds3231, NTC 3950 » 2023-08-19 11:10:09

Спробував поставити цей код щоб провірити датчик ntc 3950 через монітор порта

int ThermistorPin = A1;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;

void setup() {
Serial.begin(9600);
}

void loop() {

  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  T = T - 273.15;

  Serial.print("Temperature: "); 
  Serial.print(T);
  Serial.println("c"); 

  delay(100);
}
7

А в монитор порта приходять якісь квадратики, швидкість порта 9600, arduino nano old bootloader
при спробі будь що вивести в монітор якісь квадрати, символи
Що я роблю не так

#4 Re: Програмування Arduino » Потрібна допомога, tm1637, ds3231, NTC 3950 » 2023-08-16 12:48:10

akapulko пише:

Класичний випадок GayverXXX, спробуйте alexgayver.ru/feedback/, а я піду руки з милом вимию

Пробував інші бібліотеки то щоб запрацювали коректно хочаб часи потрібно було разів з 2 зробити ресет
А яку краще використати бібліотеку на вашу думку.

#5 Re: Програмування Arduino » Потрібна допомога, tm1637, ds3231, NTC 3950 » 2023-08-16 12:45:58

г0cть пише:
Shylz пише:

Я хочу щоб показувалв годиник а коли температура піднімеця вище 40с то перемкнутися на термометр але покищо застряг на цьому

якось так

if(tempInt >40) {
виводимо температуру
}
if(tempInt <=40) {
виводимо час
}

Дякую

#6 Re: Програмування Arduino » Потрібна допомога, tm1637, ds3231, NTC 3950 » 2023-08-15 23:49:33

#define CLK 2
#define DIO 3
#include <GyverNTC.h>
GyverNTC therm(0, 100000, 3950, 25, 100000, 10);
#include "GyverTM1637.h"
GyverTM1637 disp(CLK, DIO);
#include <microDS3231.h>
MicroDS3231 rtc;
boolean flag;

void setup() {
   disp.brightness(7);  // яркость, 0 - 7 (минимум - максимум)
  }
void loop()  {
  float temperature = therm.getTempAverage();
  int tempInt = temperature * 10;
  disp.displayInt(tempInt);
  delay(1000);
DateTime now = rtc.getTime();
      disp.displayClock(now.hour, now.minute);   // выводим время функцией часов
    flag = !flag;
      disp.point(flag);   // выкл/выкл точки
  delay(500);
  disp.point(0);   // выкл точки
 
}

#8 Програмування Arduino » Потрібна допомога, tm1637, ds3231, NTC 3950 » 2023-08-15 23:29:11

Shylz
відповідей: 12

Доброго дня спільнота, допоможіть розібратися з кодом.
Я хочу зібрати на TM1637, ds3231, NTC 3950, часи і термометр на ~250с
Покищо получився такий код

Часи ще якось показують а от температура то 0в 1розряді то 2 в 4розряді
Що я нетак зробив,
Я хочу щоб показувалв годиник а коли температура піднімеця вище 40с то перемкнутися на термометр але покищо застряг на цьому

#9 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-24 10:14:15

Частину коду яка відповіла за кнопку переніс з низу в самий початок луп, тепер все запрацювало. Дякую всім  за допомогу.

#10 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-24 10:12:00

void loop() 
{
  int buttonState =digitalRead(buttonPin); //считуем порт кнопки
  if (buttonState == HIGH) {
    Serial.println("Доступ разрешён");
    digitalWrite(BUZZER, HIGH);     // Включаем Зумер
    digitalWrite(LED_G, HIGH);    // Зажигаем Зелёный светодиод 
     digitalWrite(LOCK, HIGH);   //Включаем замок
    delay(500);
    digitalWrite(LOCK, LOW);  //Выключаем замок
    digitalWrite(BUZZER, LOW);
    delay(1000);
    digitalWrite(LED_G, LOW);    // Гасим Зелёный светодиод
  }
  
  if ( ! mfrc522.PICC_IsNewCardPresent()){
    return;
  }

#11 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-23 22:49:55

Може так буде зрозуміліше, pullup тут не проходить.
Выход з домофона на замок +15v саме вони мають давати команду на 6 ногу ардуіни щоб вона открывала замок. Домофон встановлено а кнопка покищо для тестової роботи ардуіни.

#13 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-23 22:02:34

г0сть пише:
Shylz пише:

Плата одностороння, там лише одна перемичка між  опором та масою

тогда как подключена кнопка к пину ардуины? Судя по огрызку с рисунком платы кнопка (самый нижний проводник?) подходит к одному выводу резистора, второй конец резистора на gnd(?), а к пину как? Тоже навесным проводом?

Сама нижня дорожка приходить на опір, другий вивід опору переходить на 6 ножку ардуіни і опір на землю, зараз на місті першого опору перемичка. На ціх опорах на випадок необхідності може бути виконано пониження напруги, якщо наприклад кнопка це напруга в 12-15 v.

#14 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-23 15:24:18

1-механізм відкривання буде соленоід через мосфет, або сервомотор. Більш завсесервомотор просто зараз нема в наявності бо той що прийшов бракований.
Плата одностороння, там лише одна перемичка між  опором та масою, і конденсатори стабілізаторів навісним монтажом.
Код без рфід не пробував.

#16 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-22 21:23:27

г0сть пише:
Shylz пише:

при натисканні на кнопку ардуіна зависа

В чем это выражается?

На карточку більше нереагує пока неперезавантажиш

#17 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-22 14:41:13

Пробував отак але при натисканні на кнопку ардуіна зависа

#18 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-22 14:39:57

// карта - 02 187 203 27
// брелок - "60 19 192 33"
// КАРТА - 242 166 122 26

#include <SPI.h>
#include <MFRC522.h>

const int SS_PIN = 10;      // SS вывод модуля RC522
const int RST_PIN = 9;      // RST вывод модуля RC522

const int BUZZER = 3;       //Пин для Пищалки
const int LED_R = 8;        //Пин для Красного цвета
const int LED_G = 7;        //Пин для Зелёного цвета
const int buttonPin = 6;      //Пин для кнопка откр
const int LOCK = 4;         // подключаем электрозамок

char* keys[]={"71 17 43 99"}; // ,"242 166 122 26","02 187 203 27"

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
 
void setup() 
{
  Serial.begin(9600);       // Initiate a serial communication
  SPI.begin();              // Initiate  SPI bus
  mfrc522.PCD_Init();       // Initiate MFRC522
  pinMode(buttonPin, INPUT);  // объявляем пин как вход.
  pinMode(LED_G, OUTPUT);   //объявляем пин как выход.
  pinMode(LED_R, OUTPUT);   //объявляем пин как выход.  
  pinMode(BUZZER, OUTPUT);  //объявляем пин как выход.
  pinMode(LOCK, OUTPUT);    //объявляем пин как выход.
  
  digitalWrite(LOCK, LOW);  //Выключаем замок
 
  Serial.println("Поднесите карту к считывателю");
}
void loop() 
{
  if ( ! mfrc522.PICC_IsNewCardPresent()){
    return;
  }
  if ( ! mfrc522.PICC_ReadCardSerial()){
    return;
  }

  Serial.print("UID:");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], DEC);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], DEC));
  }
  Serial.println();
  content.toUpperCase();

int x=1;
  for (int i = 0; i < sizeof(keys) / sizeof(char *); i++){
  if (content.substring(1) == keys[i]){
    Serial.println("Доступ разрешён");
    digitalWrite(BUZZER, HIGH);     // Включаем Замок
    digitalWrite(LED_G, HIGH);    // Зажигаем Зелёный светодиод 
     digitalWrite(LOCK, HIGH);   //Включаем замок
    delay(500);
    digitalWrite(LOCK, LOW);  //Выключаем замок
    digitalWrite(BUZZER, LOW);
    delay(1000);
    digitalWrite(LED_G, LOW);    // Гасим Зелёный светодиод
   
    return;
  } 
  else  x=0;
}

 if(x==0){
    Serial.println("Доступ запрещён");
    digitalWrite(LED_R, HIGH);
    digitalWrite(BUZZER, HIGH);
    delay(100);
    digitalWrite(BUZZER, LOW);
    delay(100);
    digitalWrite(BUZZER, HIGH);
    delay(100);
    digitalWrite(BUZZER,LOW);
    delay(100);
    digitalWrite(LED_R, LOW);
}   
int buttonState = digitalRead(buttonPin);
    // делаем простую проверку нашей переменной, если на входе в порт кнопки присутствует напряжение 
    if (buttonState == HIGH) {
       digitalWrite(BUZZER, HIGH);     // Включаем Замок
    digitalWrite(LED_G, HIGH);    // Зажигаем Зелёный светодиод 
     digitalWrite(LOCK, HIGH);   //Включаем замок
    delay(500);
    digitalWrite(LOCK, LOW);  //Выключаем замок
    digitalWrite(BUZZER, LOW);
    delay(1000);
    digitalWrite(LED_G, LOW);    // Гасим Зелёный светодиод // 
    
    }
}

#19 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-22 10:46:19

vvr пише:

помогать бесплатно принято тем, кто что то сам накодил, но не получается.
в вашем коде нет ни кнопки, ни соленоида, ни сервы.

В коді є і кнопка і соленоід (const int buttonPin = 6;      //Пин для кнопка откр
const int LOCK = 4;         // подключаем электрозамок) соліноід від карточки спрацьовує а от з кнопкою ніяк неможу ту частину коду яку писав під кнопку витер щоб незаважала

#20 Re: Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-22 01:05:47

#include <SPI.h>
#include <MFRC522.h>

const int SS_PIN = 10;      // SS вывод модуля RC522
const int RST_PIN = 9;      // RST вывод модуля RC522

const int BUZZER = 3;       //Пин для Пищалки
const int LED_R = 8;        //Пин для Красного цвета
const int LED_G = 7;        //Пин для Зелёного цвета
const int buttonPin = 6;      //Пин для кнопка откр
const int LOCK = 4;         // подключаем электрозамок

char* keys[]={"71 17 43 99"}; // ,"242 166 122 26","02 187 203 27"

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
 
void setup() 
{
  Serial.begin(9600);       // Initiate a serial communication
  SPI.begin();              // Initiate  SPI bus
  mfrc522.PCD_Init();       // Initiate MFRC522
  pinMode(buttonPin, INPUT);  // объявляем пин как вход.
  pinMode(LED_G, OUTPUT);   //объявляем пин как выход.
  pinMode(LED_R, OUTPUT);   //объявляем пин как выход.  
  pinMode(BUZZER, OUTPUT);  //объявляем пин как выход.
  pinMode(LOCK, OUTPUT);    //объявляем пин как выход.
  
  digitalWrite(LOCK, LOW);  //Выключаем замок
 
  Serial.println("Поднесите карту к считывателю");
}
void loop() 
{
  if ( ! mfrc522.PICC_IsNewCardPresent()){
    return;
  }
  if ( ! mfrc522.PICC_ReadCardSerial()){
    return;
  }

  Serial.print("UID:");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], DEC);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], DEC));
  }
  Serial.println();
  content.toUpperCase();

int x=1;
  for (int i = 0; i < sizeof(keys) / sizeof(char *); i++){
  if (content.substring(1) == keys[i]){
    Serial.println("Доступ разрешён");
    digitalWrite(BUZZER, HIGH);     // Включаем Замок
    digitalWrite(LED_G, HIGH);    // Зажигаем Зелёный светодиод 
     digitalWrite(LOCK, HIGH);   //Включаем замок
    delay(500);
    digitalWrite(LOCK, LOW);  //Выключаем замок
    digitalWrite(BUZZER, LOW);
    delay(1000);
    digitalWrite(LED_G, LOW);    // Гасим Зелёный светодиод
   
    return;
  } 
  else  x=0;
}

 if(x==0){
    Serial.println("Доступ запрещён");
    digitalWrite(LED_R, HIGH);
    digitalWrite(BUZZER, HIGH);
    delay(100);
    digitalWrite(BUZZER, LOW);
    delay(100);
    digitalWrite(BUZZER, HIGH);
    delay(100);
    digitalWrite(BUZZER,LOW);
    delay(100);
    digitalWrite(LED_R, LOW);
}   

}

#21 Програмування Arduino » Rfid замок, потрібна допомога » 2022-06-22 00:03:17

Shylz
відповідей: 23

Добрий день. Потрібна допомога з доповнення скечу.
Роблю rfid замок, потрібно добавити кнопку(з підтягнути опором на 10ком на масу) , щоб при натисканні на кнопку зпрацював селеноид на 1 секунду і провернувся сервомотор на 90 градусів а потім повернувся на 0.
Будь ласка допоможіть.

Підвал форуму