Матричное соединение датчиков Холла A3144

Не будет ли замыкания если по Вашей схеме подать на строку высокое состояние? К строкам точно нужно и можно подключать ножку земли?
Прошу прощения за возможно глупые вопросы, я просто пытаюсь во всем разобраться!

И это правильно! Сначало надо понять как работает схема, а уж потом собирать в железе.
Замыкания не будет, потому что на датчик не приходит земля кроме как с пина МК.
Возьмите один датчик для начала, в скетче замерьте время от момента подачи земли до момента когда на его выходе установится стабильный уровень.

Еще можете замерить реальный потребляемый ток датчиком. По даташиту около 5 мА.

Извиняюсь что влезаю, но D7, D8, всегда должны быть только как ВХОД INPUT_PULLUP иначе будет КЗ(почти)

1 лайк

Если я все правильно понял

#include <Arduino.h>

const int ROWS = 2;
const int COLS = 2;

const int rows[ROWS] = {2, 3};    // Строки: D2, D3
const int cols[COLS] = {7, 8};    // Столбцы: D7, D8

void setup() {
    Serial.begin(115200);  // Запускаем Serial Monitor

    for (int i = 0; i < ROWS; i++) {
        pinMode(rows[i], OUTPUT);   // Строки как выходы
        digitalWrite(rows[i], HIGH); // Включаем питание строк
    }

    for (int i = 0; i < COLS; i++) {
      pinMode(cols[i], INPUT_PULLUP);
  }
}

void loop() {
    Serial.println("Сканирование матрицы:");
    for (int r = 0; r < ROWS; r++) {
        digitalWrite(rows[r], LOW);  
        delay(2); 

        for (int c = 0; c < COLS; c++) {
          Serial.println(digitalRead(cols[c]));
            delay(500);
        }
        digitalWrite(rows[r], HIGH); 
    }
    Serial.println("----------");
    delay(1000);
}

Всем мега огромное спасибо за помощь! Оно работает :grinning:
@Pyotr никогда бы не подумал что землю можно подключать на выход контроллера, большое спасибо за схему!

1 лайк

Строки 13 и 14 поменять местами.
Строка 30 не нужна.

Резисторы поставили или и без них работает?

С резисторами поставил, без них не пробовал пока

Мне вот интересно стало, питать датчики нужно же не от пина ардуино 5V, так как 25 датчиков питать не лучшая идея как мне кажется. Я предполагаю нужно запитываться с того же места откуда питается сама ардуино, в моем случае это блок питания 5V.
Или я что то не так понимаю?

У Вас 5 строк по 5 датчиков. Включается только одна строка, а 4 всегда отключены. Нужно померить потребляемый ток этими пятью датчиками. Если меньше 40 мА, то норм.

The best вариант, будет работать наверняка.