Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Nefreemen
2017-02-08 20:29:47
Green пише:

Во, и кто бы мне рассказал про "токи Фуко на обратной петле гистерезиса"...

Закончил физмат (спец. физика). Что такое токи Фуко (замкнутые токи в проводнике на этом эффекте работают электросчетчики с алюминиевым диском smile  знаю, то такое петля гистерезиса тоже знаю, даже помню о точке Кюри, но что такое "обратная петля" roll .

Антоха
2017-02-08 18:18:15

привет. Если есть желание то могу помочь с расшифровками кодов, и поделюсь своим опытом по Ардуино.
Если что пиши, мне удобнее общаться по E-Mail.
моя почта     monster022@bk.ru

буду рад пообщаться

alex_dol
2017-02-08 18:13:52

if(условие) {выполняемая команда если условие истинна}
else {выполняемая команда если условие не истинно}
(условие) - может быть что угодно (в рамках разумного конечно), компилятор все это приведет в виду "0"=не истинно или "не 0"= истинно. Сравнивать с чем либо переменную не обязательно: если она = 0 - это ложь, иначе - истинна.
Иначе говоря:
if(0) - не истинна
if(1) - истинна
if(2) - истинна
if(0==0) - истинна
if(5==5) - истинна
if(1!=1) - не истинна
if(1==HIGH) - истинна
if(0==FALSE) - истинна


digitalWrite(Пин, Значение) Пин (нога контроллера) = LedPin = 13, Значение = логическое 0 или 1, оно же ложь или истинна, LOW или HIGH...
Оператор "!" - инверсия : меняет 0 на 1 и наоборот
digitalRead(LedPin) - чтение текущего состояния вывода LedPin, в данном случае = 13
Итого:
1. digitalRead(LedPin) - читаем значение вывода LedPin
2. !digitalRead(LedPin) - инвертируем полученное значение
3. digitalWrite(LedPin, !digitalRead(LedPin)) - пишем на вывод LedPin инвертированное считанное значение
Проще говоря это прости инверсия значения вывода LedPin

З,Ы, Как вам писали, без азов ничего не будет
З,Ы,Ы, пишу на несовсем трезвую голову, сорри, если что...

ForestCrow
2017-02-08 15:55:52

Уважаемый, yus12! Спасибо, что откликнулись на мой зов!) Все, что Вы написали мне полностью понятно. Я не могу понять саму логику кода. В первом скетче
if (press == HIGH)  - это уловие что в момент нажатия кнопки? Это понятно.
  {
if(toggle)   - если taggle истина? Если так, то зачем его обозначать здесь если он уже прописан как переменная = истина?Или как??
    {                                 
      servo.write(90);            то серва на 90 и после этой операции taggle не истина?
      toggle = !toggle;
    }
    else
    {
      servo.write(20);          - ну это и так понятно.
      toggle = !toggle;

Это все что я хочу понять для себя в первом счетче. Во втором все понятно кроме самой пошаговой логике этой строчки :digitalWrite(LedPin, !digitalRead(LedPin));. Или это вообще готовая функция, кроме LedPin и она не поддается пошаговой расшифровке, а сразу означает изменение состояния?  Может я не правильно выражаюсь, но надеюсь суть вопроса понятна.

yus12
2017-02-08 15:08:12

По первому примеру:
Вы подключили библиотеку управления сервой (там особый сигнал) и подключили стерву на 7 ножку.
Так же вы подключили кнопку. С кнопки один провод на 5 пин, второй на питание (+5 вольт к примеру)
В этом примере вы проверяете есть ли напряжение на кнопке. При каждом нажатии кнопки(подачи питания на 5 пин) вы чередуете положение сервы между 20 и 90 градусами

Во втором примере:
digitalWrite - это вы говорите подавать или нет питание на ножку
digitalRead - Тут вы считываете текущее состояние ножки
! - это делает значение противоположным. Например !Истина = Ложь, !Ложь = Истина
Соответсвенно при команде "digitalWrite(LedPin, !digitalRead(LedPin)); "Вы задаете контролеру противоположное текущему состоянию ножки.

vvr
2017-02-08 14:04:21

почитайте
http://arduino.ua/ru/prog/

vvr
2017-02-08 14:00:21

вы же сами написали что хотите двигаться дальше.
если не разберётесь с азами толку не будет.
ну скажут вам по этим скетчам, а дальше что?
каждую новую строчку на форумах расспрашивать

ForestCrow
2017-02-08 13:24:17

Мда, для меня это уже больше астрофизика чем математика)). Я в системном администрировании  не плохо понимаю, а вот программирование только сейчас меня догнало. Первый раз в жизни написал на форуме, поскольку в этот раз реально не смог найти нужны ответ и похоже вряд ли мне тут помогут. И вроде ничего такого сложного не спросил для понимающих...

Green
2017-02-08 11:22:45

ForestCrow, а если серьёзно, то в Ваших впоросах С++ и не пахнет. Просто Си. И Ардуино.

Green
2017-02-08 11:16:06

Во, и кто бы мне рассказал про "токи Фуко на обратной петле гистерезиса"...

NoName
2017-02-08 11:00:47

ForestCrow, привет,
к сожалению да,  без наставников и преподавателей, это сейчас в моде менторы и  т.д. )
зато натур обмен всегда  работает )

как у вас с математикой?
есть куча текста типа такого

"Влияние шума
устраняется даже при низком соотношении сигнал/шум. Для примера стоит сказать, что винеровская фильтрация при соотношениях сигнал/шум ниже 2 дБ дает еще худший результат, чем был до фильтрации [1, 2]. Опираясь на широко применяемый метод Винера как на стандарт, можно сделать заключение о высокой эффективности метода фильтрации, основанного на анализе собственных чисел автокорреляционной матрицы."
который реально непонятен  и такого текста много... ,хорошо что не на английском ), а то вообще был бы жах )

то я бы за "пивасиком"  поговорил непонятных вопросах   по контроллерам в обмен на "поговорить" о вышке )

документ интересный, всем рекомендую к ознакомлению

ftp://tor.kpi.ua/

ForestCrow
2017-02-08 10:39:04

А я как по Вашему учусь? С потолка? Или Вы учились чисто по книгам, без наставников, преподавателей и никогда никому не задавали вопросов? И вообще, было бы не плохо найти тут друзей с общими интересами и взаимовыручкой. А книга по С++ и уроки в ютюбе так могут?

vvr
2017-02-08 08:58:18

вам не телефонный разговор нужен, а книжки по программирования на с++ почитать.
тогда толк будет.
книжек много, уроков на ютубе тоже много)))

ForestCrow
2017-02-08 01:07:16

Cкетч №1  управления сервой одной кнопкой. Я не могу понять пошаговую логику как оно работает, а без понимания не могу продвинуться дальше. Есть скетч №2 - простой триггер для светодиода. Я не понимаю выражение: digitalWrite(LedPin, !digitalRead(LedPin));. Получается две разных функции и обе на LedPin? И можно ли во втором скетче вместо светодиода управлять сервой как в первом скетче? Не помешает и литература по программным триггерам (если я правильно выражаюсь). Может кому-то не лень в телефонном режиме растолковать мне неучу)? Заранее спасибо, очень жду, реально застрял в этом месте.
Виталий. Киев, Деснянский.

Скетч №1
#include <Servo.h>
int button = 5; //button pin, connect to ground to move servo
int press = 0;
Servo servo;
boolean toggle = true;

void setup()
{
  pinMode(button, OUTPUT); //arduino monitor pin state
  servo.attach(7); //pin for servo control signal
  digitalWrite(5, LOW); //enable pullups to make pin high
}

void loop()
{
  press = digitalRead(button);
  if (press == HIGH)
  {
    if(toggle)
    {
      servo.write(90);
      toggle = !toggle;
    }
    else
    {
      servo.write(20);
      toggle = !toggle;
    }
  }
  delay(500);  //delay for debounce
}

Скетч №2

int LedPin = 13;             // Подключаем светодиод к порту 13
int ButPin = 4;             // Подключаем кнопку к выходу 10

void setup()
{
  pinMode(LedPin, OUTPUT);   // Инициализируем порт "ledPin" как выходной

void loop(){
  if(digitalRead(ButPin) == HIGH)        // если кнопка нажата
    {
      digitalWrite(LedPin, !digitalRead(LedPin));        // то переключаем состояние LedPin
      delay(500);
    }
}

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