Ви не увійшли.
Сторінки 1
И так. Разобрался уже давно и вспомнил что забыл отписаться.
Весь косяк в том что:
1. Я не упомянул о том что в W5100 у меня воткнут еще RC522
2. Т.к. RC522 использует ISP так же как W5100 я указал в коде разные SS!!!.
3. Но даже в таком случае если и программно дергать за ноги SS в зависимости от того что хотим использовать RC522 или W5100 в мониторе порта не покажет вам IP и не присвоит его.
4. ТОЛЬКО если вы явно укажите скетче IP ардуинки то сможете пингануть ардуинку по этому IP но не зайти на нее. Но в мониторе порта вы все равно будете наблюдать что то на подобии 0.0.0.0 или 0.0.0.8 и т.д.
5. Для того что бы все взлетело необходимо MISO пин RC522 и 12й пин MISO ардуинки уно подключить через резистор 220 Ом.
P/S/ При связке UNO+RC522+SDcard также необходимо MISO пин SD и 12й пин MISO ардуинки уно подключить через резистор 220 Ом. При таком подключении все работает и без всяких программных дерганей SS пинов
Да и перепайка резистора 511го на 510й ничего не дает
И так. Заменил.
if (bufs == buf)// Если Строка bufs == переменной buf то выводим Yes!
{
Serial.println("Yes!");
}
На такой костыль.
bufs.trim();
if (bufs.compareTo(buf)== 0)
{
Serial.println("Ok");
break;
}
Функция trim() удаляет лишние пробелы в конце переменной String.
После функцией сравнения переменных типа String compareTo() которая в случае совпадения по алфавитно содержимого этих переменных возвращает "0" проверяю свои переменные.
Возможно все это костыль, возможно можно было и проще сделать.
Есть такой код
#include <SD.h>
#include <SPI.h>
File printFile;
String bufs;
String buf = "14";
boolean SDfound;
void setup() {
Serial.begin(9600);
if (SDfound == 0) {
if (!SD.begin(8)) {
Serial.print("SD not found");
while(1);
}
}
}
void loop() {
SDfound = 1;
printFile = SD.open("id.txt");
if (!printFile) {
Serial.print("file cannot be opened");
while(1);
}
while (printFile.available()) {
bufs = printFile.readStringUntil('\n');
Serial.println(bufs); //Вывод строки
if (bufs == buf)// Если Строка bufs == переменной buf то выводим Yes!
{
Serial.println("Yes!");
}
delay(2000);
}
printFile.close();
delay(2000);
}
Файл id.txt на SD карте содержит цифры от 1 до 20 каждая цифра с новой строки.
Приведенный код работает отлично в сериал передает все эти цифры как и хотелось.
Но вот кусок
if (bufs == buf)// Если Строка bufs == переменной buf то выводим Yes!
{
Serial.println("Yes!");
}
По какой то причинен НЕ проверяет равенство этих строк.
Почему? Где ошибка? Как ее исправить? Помогите пж.
Добрый день/вечер.
Столкнулся с такой проблемой.
Подключил w5100 китайца к uno. Залил скетч WebServer пример из библиотеки Ethernet, назначив MAC и ip из диапазона своей сети. После заливки скетча в монитор порта выпадает server is at 0.0.0.0 по ip заданному в скетче через браузер ничего не показывает. Ноооо если пингануть w5100 по этому ip то пингипроходят и весьма успешно. Если воспользоваться прогой ipscan то она находит шилд в сетке с тем маком что прописал в скетче и с тем ip. В мониторе порта если нажимать на ресет шилда иногда все таки выдает прописанный ip но попытавшись зайти на шилд получаю "Страница недоступна".
Читал в интернетах что возможен хреновый контакт между шилдом и uno. Прозвонил все контакты мультиметром результат - Все ОК.
Потом нашел в инете что резистор который находится сразу за разъемом RJ-45 должен быть не 511й - 510 Ом, а 510й на 51 Ом. Под рукой оказался только 560йна 56 Ом. Перепаял т.к. разница думаю не существенная. Результат тот же с теми же показателями и симптомами.
Собственно вопрос.
Кто знает в чем лажа? И как это исправить?
этот тот модуль у которого был овервольтаж? ))))
на UNO работает?
Он самый. На уно тоже линк идет но страничку не отображает.
P/S Ну давай скажи что у меня модуль погорел
Аналогично!
Добрый вечер.
Подскажите кто подключал связку enc28j60 на nano.
Подключил
enc28j60 nano
VCC Внешний источник питания на 3.3
GND От внешнего источника питания
CS D10
SI D11
SCK D13
SO D12
Загрузил стандартный скетч из примера
#include "etherShield.h"
#include "ETHER_28J60.h"
static uint8_t mac[6] = {0x74,0x69,0x69,0x2D,0x30,0x31};
static uint8_t ip[4] = {192, 168, 0, 151};
static uint16_t port = 80;
ETHER_28J60 ethernet;
void setup()
{
ethernet.setup(mac, ip, port);
}
void loop()
{
if (ethernet.serviceRequest())
{
ethernet.print("<H1>Hello World</H1>");
ethernet.respond();
}
delay(100);
}
Компиляция и загрузка прошла успешно.
Подключаю кабель в enc28j60 лампочки линка загораются, желтая мигает.
Пробую зайти по ip 192.168.0.151 и страница не загружается.
Как быть, где ошибка? Кто работал с такой связкой помогите советом.
Да вот только припаял гребенку к понижающему )))) Ну жалко просто так выкинуть ))
Да на понижающем с выставленным выходом на 3.3v линк поднялся сразу.
Вот точно такая http://fix.org.ua/images/stories/virtue … t/nano.jpg на Atmega328. А что то не то? Выходы есть и 5v и 3.3v
Нет ничего не правил, по этому и не написал.
Методом тыка, благо есть UNO под рукой, было выяснено что на nano питание 3.3v которое необходимо для ENC28J60 было равным 3.5v. Поэтому даже при простом подключении ENC28J60 к UNO контактами 3.3 и GND и вставленном сетевом кабеле в ENC28J60 сразу было видно линк на разъеме RJ-45. При аналогичных действиях с nano горел лишь диод питания ENC28J60, а линк на разъеме RJ-45 не подает никаких признаков жизни.
Обидно что nano подвела((
UP тему. Аналогичная проблема. Автор если решил отпишись пж. Сам модуль брал тут http://arduino-ua.com/
Сторінки 1