Через эту функцию хочу видеть на вебстранице состояние нужного мне контакта. Пример вывода подсмотрел здесь - https://radioprog.ru/post/109 И все равно ничего не получается, не хочет даже собираться, подсвечивает красным строку с IF.
А нету какого-то букваря? Раз я не могу даже пример подставить. На сайте есть раздел "Программирование ардуино" но даже там мне не все понятно. Нужно понять самые азы, куда IF можно писать, а куда нельзя.
#include <SPI.h>
#include <Ethernet.h>
boolean newInfo = 0;
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };
IPAddress ip(192,168,4,70);
byte gateway[] = { 192, 168, 4, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(80);
int inPin = 2; // кнопка на входе 7
int val = 0; // переменная для хранения значения
void setup()
{
pinMode(inPin, INPUT); // устанавливает режим работы - вход для 2го вход/выхода (pin)
digitalWrite(8,HIGH);
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
}
void loop()
{
val = digitalRead(inPin); // считываем значение с входа
EthernetClient client = server.available();
if(client){
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if(newInfo && c == ' '){
newInfo = 0;
}
if(c == '$'){
newInfo = 1;
}
if(newInfo == 1){
Serial.println(c);
if(c == '1'){
Serial.println("ON");
digitalWrite(8, LOW);
}
if(c == '2'){
Serial.println("OFF");
digitalWrite(8, HIGH);
}
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 1");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("<title>Alarm</title>");
client.print("<H1>Block 1</H1>");
if digitalRead(inPin))
{
client.println("<h3>0</h3>");
}
else
{
client.println("<h3>1</h3>");
}
client.println("<br />");
client.println("</html>");
break;
}
}
}
delay(1);
client.stop();
}
}
http://arduino.ru/Reference/If - 5 раз прочел эту страницу и не понял никакого смысла и чем мне это поможет. Тупой? Слишком старый для обучения?
Просто невнимательный. Любой начинающий делает ошибки, за которые ему через некоторое время становится стыдно - теряет запятые, скобки, путает знаки.
Я вижу, что в данном коде криминала нет (кроме бессмысленного HTML). И с мигалкой тоже было на пять минут дел, если бы не бросил. Я же даже написал что куда копипастить.
Теперь, товарищ рядовой электрик, понимаете почему специализированное оборудование стоит дорого и из говна и палок с Алиэкспресса собрать аналог удается крайне редко?
Эпическая битва. Теперь, товарищ рядовой электрик, понимаете почему специализированное оборудование стоит дорого и из говна и палок с Алиэкспресса собрать аналог удается крайне редко?
О да теперь понимаю! подъехала свежая информация - "перепиши вместо TOIE1, OCIE1A". Вроде заработало но без задержек, где-то еще косяк.
мне кажется OCR1A инициализируется рановато, сравни:
// Остановка таймера и перевод пина D10 в режим OUTPUT - TCCR1A &= ~0x30;
// Для проверки работы алгоритма стандартными средствами ардуино задействуем
// на пине 13 (синхронное тактирование с D10), для проверки сброса и установки таймера
// воспользуемся функцией millis()
unsigned long int old_Millis = 0;
unsigned int pause = 15000;
enum Prescalers {
PRESCALER_1 = 1, PRESCALER_8 = 2, PRESCALER_64 = 3, PRESCALER_256 = 4, PRESCALER_1024 = 5
};
void set_Timer(){
pinMode(13, OUTPUT);
uint8_t prescaler = PRESCALER_256;
uint16_t topValue = 62499;
pinMode(10, OUTPUT);
TCCR1A = 0x10; // Инвертирование пина 10 по сравнению
TCCR1B = 0x08 | prescaler; // Установить СТС режим и делитель частоты
OCR1A = topValue; // установить TOP равным topValue
}
void start_Timer(){
TCCR1A = 0x10; // Инвертирование пина 10 по сравнению
}
void end_Timer(){
TCCR1A &= ~0x30;
digitalWrite(10,LOW);
}
void sync_Timer(){
if (digitalRead(10)==HIGH){
digitalWrite(13,HIGH);
} else {
digitalWrite(13,LOW);}
}
void setup() {
set_Timer();
old_Millis = millis();
}
void loop() {
unsigned long int new_Millis = millis();
if (new_Millis - old_Millis <= pause){
sync_Timer();
}else{
end_Timer();
sync_Timer();
delay(10000);
start_Timer();
old_Millis = millis();
}
}
Я вообще не знаю, что оно делает. Но не работает его вариант кода, показывает только в браузере кнопки и при их нажатии нет никакой реакции. Смотрел в коде какие-то закономерности - ничего не нашел. Этот товарищ сказал, что это мои проблемы почему оно не работает. Вернулись снова откуда начали.
Эпическая битва. Теперь, товарищ рядовой электрик, понимаете почему специализированное оборудование стоит дорого и из говна и палок с Алиэкспресса собрать аналог удается крайне редко?
Еще как довелось услышать, что эту "систему" до меня пытались отремонтировать на протяжении 8 лет! В каком-то графике есть даты испытания и каждый год руководство сношало друг-друга по кругу. Каждый год выделялись средства и люди на ее ремонт и каждый раз ее не могут отремонтировать. До моего предложения... На каком-то этапе я уже начал отказываться от этой затеи, но мне сказали, что соскочить не получится уже.
Скорее всего поставят секретную отметку в трудовой, что тебя потом нигде брать не будут.
прототип у тебя почти готов (на одну ячейку), продемонстрируешь принципиальную возможность реализации этой задачи через сеть, а дальше проси денег побольше )))
В пятницу была демонстрация с делеями, на лампочку. 10 штук всего нужно будет сделать. + экран сделал из двухстороннего гетинакса найденного на помойке.
Еще как довелось услышать, что эту "систему" до меня пытались отремонтировать на протяжении 8 лет!
Прости мою невнимательность, но я забыл где ты писал, что эта "система" должна делать? Напомни, или ссылку дай, если не против. Что-то мне интересно стало! ;))
Раз все равно ничего не получается, попробую как что-то другое подумал. http://arduino.ru/Reference/DigitalRead
Через эту функцию хочу видеть на вебстранице состояние нужного мне контакта. Пример вывода подсмотрел здесь - https://radioprog.ru/post/109 И все равно ничего не получается, не хочет даже собираться, подсвечивает красным строку с IF.
А нету какого-то букваря? Раз я не могу даже пример подставить. На сайте есть раздел "Программирование ардуино" но даже там мне не все понятно. Нужно понять самые азы, куда IF можно писать, а куда нельзя.
http://arduino.ru/Reference/If - 5 раз прочел эту страницу и не понял никакого смысла и чем мне это поможет. Тупой? Слишком старый для обучения?
Опять скобка потеряна. Пересчитайте в своем ифе кол-во открывающих и закрывающих круглых скобок
Просто невнимательный. Любой начинающий делает ошибки, за которые ему через некоторое время становится стыдно - теряет запятые, скобки, путает знаки.
Я вижу, что в данном коде криминала нет (кроме бессмысленного HTML). И с мигалкой тоже было на пять минут дел, если бы не бросил. Я же даже написал что куда копипастить.
Не сдавайся, мастер тебя похвалит ))
Нет, краткая справка по Ардуино подразумевает, что читающий более или менее представляет себе язык программирования.
Другими словами, Вам надо читать не справку по Ардуино, а учебник по Си++.
Есть у меня знакомый который что-то понимает, долго я клянчил посмотреть мою поделку и вот свершилось.
Ииии не работает! Вебстраница недоступна, пинга нет. Если убрать из кода это:
то вебстраница начинает быть доступной, но нет реакции на кнопки.
Эпическая битва.
Теперь, товарищ рядовой электрик, понимаете почему специализированное оборудование стоит дорого и из говна и палок с Алиэкспресса собрать аналог удается крайне редко?
О да теперь понимаю! подъехала свежая информация - "перепиши вместо TOIE1, OCIE1A". Вроде заработало но без задержек, где-то еще косяк.
мне кажется OCR1A инициализируется рановато, сравни:
мне кажется OCR1A инициализируется рановато, сравни:
Я вообще не знаю, что оно делает. Но не работает его вариант кода, показывает только в браузере кнопки и при их нажатии нет никакой реакции. Смотрел в коде какие-то закономерности - ничего не нашел. Этот товарищ сказал, что это мои проблемы почему оно не работает. Вернулись снова откуда начали.
Еще как довелось услышать, что эту "систему" до меня пытались отремонтировать на протяжении 8 лет! В каком-то графике есть даты испытания и каждый год руководство сношало друг-друга по кругу. Каждый год выделялись средства и люди на ее ремонт и каждый раз ее не могут отремонтировать. До моего предложения... На каком-то этапе я уже начал отказываться от этой затеи, но мне сказали, что соскочить не получится уже.
Что, расстреливать у полыньи начнут?
Видимо, хуже.
Скорее всего поставят секретную отметку в трудовой, что тебя потом нигде брать не будут.
Скорее всего поставят секретную отметку в трудовой, что тебя потом нигде брать не будут.
прототип у тебя почти готов (на одну ячейку), продемонстрируешь принципиальную возможность реализации этой задачи через сеть, а дальше проси денег побольше )))
В пятницу была демонстрация с делеями, на лампочку. 10 штук всего нужно будет сделать. + экран сделал из двухстороннего гетинакса найденного на помойке.
Ящичег похож на блок управления системой оповещения ГО. Не оно?
Еще как довелось услышать, что эту "систему" до меня пытались отремонтировать на протяжении 8 лет!
Прости мою невнимательность, но я забыл где ты писал, что эта "система" должна делать? Напомни, или ссылку дай, если не против. Что-то мне интересно стало! ;))
Ящичег похож на блок управления системой оповещения ГО. Не оно?
Оно самое.