Подправить скетч

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Добрый день и здравия всем форумчанам !!! Ребята, пожалуйста помогите подправит скетч ! Это не весь, а только часть которую и необходимо подправить:

#define led 8
#include <SPI.h>
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL; 
//int msg[1];
int msg[1];
int msh[1];
boolean ledOn = false;
boolean lastBut = HIGH;
long time = 0;  
long debounce = 300;
int data; 
int data1; 
int pos;
int fspeed; // движение вперед
int bspeed; // движение назад
int steer;
const int in1 = 7; // direction pin 1
const int in2 = 6; // direction pin 2
const int in3 = 4; // direction pin 1
const int in4 = 2; // direction pin 2
const int ena = 5; // PWM pin to change speed
const int enb = 3; 
byte IsConnect;
void setup()
{
  pinMode(led, OUTPUT);
  Serial.begin(9600);
  pinMode(in1, OUTPUT); // connection to L298n
  pinMode(in2, OUTPUT); // connection to L298n
  pinMode(ena, OUTPUT); // connection to L298n
  pinMode(in3, OUTPUT); // connection to L298n
  pinMode(in4, OUTPUT); // connection to L298n
  pinMode(enb, OUTPUT); // connection to L298n
  //servo1.attach(3); 
  // delay(10);
  radio.begin();
  radio.openReadingPipe(1,pipe); 
 // radio.openReadingPipe(pipe); 
  radio.startListening();
}
 
int MotoL, MotoR;
int ValStickX, ValStickY;
void loop() {
 
  if (radio.available()){
    radio.read(msg, 1);
    IsConnect = HIGH;
  }
  else{
    IsConnect = LOW;
  }
 
if (msh[1] == 255 && lastBut == HIGH && millis() - time > debounce)
{
ledOn = !ledOn;
lastBut = HIGH;
 time = millis();
}
else // Иначе,
{
  lastBut = digitalRead(lastBut);
 
 }  
  digitalWrite(led, ledOn);
В данный момент на выходе 8 светодиод мигает, а необходимо чтоб: 1. Подаю питание на схему и на 8 пине был 0,  при нажатии на передатчике с которого команда приходит на приемник на 8 пине была 1 и при повторном нажатии опять 0. Включить и выключить светодиод. С Уважением дед Игорь !
IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Подправить нужно последние 11 строчек

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

При таком раскладе диод горит при подаче питания на арду и гаснит при нажатии на пульте кнопки, кнопку отпускаю опять горит, а это не правильно.

if(msh[1] == 255)
{                 
     digitalWrite(led, HIGH); 
}               
  else{                           
     digitalWrite(led, LOW);             
  } 
fogary
Offline
Зарегистрирован: 05.03.2016

Объявляете массим размером в один элемент

int msh[1];

А в проверке, обращаетесь ко второму элементу

if(msh[1] == 255)

Это как?

PS
Вставляйте код как полагается, в тэгах. Больше шансов, что помогут.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

IgorBorNN пишет:

Подправить нужно последние 11 строчек

А почему не 10, или не 12?

Обратитесть в профильный раздел "Ищу исполнителя", там поправят.

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

ЕвгенийП пишет:

IgorBorNN пишет:

Подправить нужно последние 11 строчек

А почему не 10, или не 12?

Обратитесть в профильный раздел "Ищу исполнителя", там поправят.

Потому что в них и зарыта истина !

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

fogary пишет:

Объявляете массим размером в один элемент

int msh[1];

А в проверке, обращаетесь ко второму элементу

if(msh[1] == 255)

Это как?

PS
Вставляйте код как полагается, в тэгах. Больше шансов, что помогут.

255 это код передачи с передатчика и если я напишу 254 то команда вообще не выполница !

sadman41
Offline
Зарегистрирован: 19.10.2016

IgorBorNN пишет:

255 это код передачи с передатчика и если я напишу 254 то команда вообще не выполница !

Вам намекают на то, что в честном Cи индекс элемента - это расстояние смещения ячейки памяти, в котором хранится его значение, от начального адреса (не то, что в языческом Бейсике и людском счете).

Первый элемент смещения не имеет, поэтому к нему полагается обратиться, как к array[0].

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

sadman41 пишет:

IgorBorNN пишет:

255 это код передачи с передатчика и если я напишу 254 то команда вообще не выполница !

Вам намекают на то, что в честном Cи индекс элемента - это расстояние смещения ячейки памяти, в котором хранится его значение, от начального адреса (не то, что в языческом Бейсике и людском счете).

Первый элемент смещения не имеет, поэтому к нему полагается обратиться, как к array[0].

Я не силен в С, по этому и не знаю как и что, по этому и прошу помочь. Этот скетч скомпоновал из разных источников, все что касается передачи и приема в норме, управление с джойстика на передатчике и раьота моторов через драйвер тоже в норме а вот с кнопкой включениея и выключения запутался. Вот и прошу помощи !!!!

b707
Offline
Зарегистрирован: 26.05.2017

IgorBorNN пишет:

Я не силен в С, по этому и не знаю как и что, по этому и прошу помочь. Этот скетч скомпоновал из разных источников, все что касается передачи и приема в норме, управление с джойстика на передатчике и раьота моторов через драйвер тоже в норме а вот с кнопкой включениея и выключения запутался. Вот и прошу помощи !!!!

Тем, кто не силен в Си - надо его выучить. Тем, кто не хочеьт учиться - помочь невозможно

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

b707 пишет:

IgorBorNN пишет:

Я не силен в С, по этому и не знаю как и что, по этому и прошу помочь. Этот скетч скомпоновал из разных источников, все что касается передачи и приема в норме, управление с джойстика на передатчике и раьота моторов через драйвер тоже в норме а вот с кнопкой включениея и выключения запутался. Вот и прошу помощи !!!!

Тем, кто не силен в Си - надо его выучить. Тем, кто не хочеьт учиться - помочь невозможно

Учиться когда под 60 лет тяжело, а вот помочь я так понимаю вам тоже тяжело! Благодарю за помощь !

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Я хочу помочь инвалиду, для которого и делаю это чтоб облегчить ему в его не легкой жизни!!!

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Админ можете закрыть тему, если сдесь такое отношение !!! С Уважением дед Игорь !!!

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

IgorBorNN пишет:

Учиться когда под 60 лет тяжело, а вот помочь я так понимаю вам тоже тяжело! Благодарю за помощь !

соберите бабушке на дрова, а дедушке - напишите код. \o

b707
Offline
Зарегистрирован: 26.05.2017

IgorBorNN пишет:

Учиться когда под 60 лет тяжело, а вот помочь я так понимаю вам тоже тяжело! Благодарю за помощь !

Вам оказали помощь - написали, что вы в своей программе неправильно обращаетесь к массиву. Вас такая помощь, видимо,  не устраивает, в ответ вы пишете "я не понимаю программирования и не собираюсь в нем разбираться" - не этими словами, но по смыслу именно это.

Если вы хотите сделать свою поделку - разбираться придется. Если не хотите учиться - ничего не выйдет.

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

b707 пишет:

IgorBorNN пишет:

Учиться когда под 60 лет тяжело, а вот помочь я так понимаю вам тоже тяжело! Благодарю за помощь !

Вам оказали помощь - написали, что вы в своей программе неправильно обращаетесь к массиву. Вас такая помощь, видимо,  не устраивает, в ответ вы пишете "я не понимаю программирования и не собираюсь в нем разбираться" - не этими словами, но по смыслу именно это.

Если вы хотите сделать свою поделку - разбираться придется. Если не хотите учиться - ничего не выйдет.

Если бы я не правильно обращался к массиву то вообще ни какой реакции на кнопку с передатчика бы небыло, а реакция есть.

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

IgorBorNN пишет:

b707 пишет:

IgorBorNN пишет:

Учиться когда под 60 лет тяжело, а вот помочь я так понимаю вам тоже тяжело! Благодарю за помощь !

Вам оказали помощь - написали, что вы в своей программе неправильно обращаетесь к массиву. Вас такая помощь, видимо,  не устраивает, в ответ вы пишете "я не понимаю программирования и не собираюсь в нем разбираться" - не этими словами, но по смыслу именно это.

Если вы хотите сделать свою поделку - разбираться придется. Если не хотите учиться - ничего не выйдет.

Если бы я не правильно обращался к массиву то вообще ни какой реакции на кнопку с передатчика бы небыло, а реакция есть.

 

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Неужели трудно подправить 10 строк и выложить, это и есть помощь !

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

b707:

Вы думаете я не пытаюсь что то сделать и чему то научиться, Вы ошибаетесь. Дайте задачу человеку который вообще в электронике и программировании 0, да он просто скажет что нафиг оно мне нужно. А я хоть как то пытаюсь помочь человеку в инвалидной коляске. 

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Я на свои деньги покупаю необходимое оборудование, трачу время для того чтоб хоть как то помочь человеку, а вы сдесь похоже на это не способны !

b707
Offline
Зарегистрирован: 26.05.2017

IgorBorNN пишет:

Неужели трудно подправить 10 строк и выложить, это и есть помощь !

трудно править кривой код, тем более когда автор сам не знает, что этот код делает.

Вот вам общий принцип - когда вы получили команду и поменяли статус пина 8 - вы команду сбрасывате в ноль, а то у вас пин начинает меняться в цикле бесконечно.

Конкретно где поправить в коде - не вижу. Приема команд с приемника нет, что именно управляет включением 8 выхода - ХЗ

sadman41
Offline
Зарегистрирован: 19.10.2016

IgorBorNN пишет:

Я на свои деньги покупаю необходимое оборудование, трачу время для того чтоб хоть как то помочь человеку, а вы сдесь похоже на это не способны !

Мне вот интересно - с чего вы решили, что мы никому не помогаем, а сидим, жрем водку и глумимся над инвалидами?

Если я, например, своих подопечных брошу и перепишу вам эти 10 строк и у вас все равно ничего не заработает (а оно не заработает) - тоже будете волком на меня бросаться до тех пор, пока не останетесь наедине со своими ардуинами и идеями?

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

b707 пишет:

IgorBorNN пишет:

Неужели трудно подправить 10 строк и выложить, это и есть помощь !

трудно править кривой код, тем более когда автор сам не знает, что этот код делает.

Вот вам общий принцип - когда вы получили команду и поменяли статус пина 8 - вы команду сбрасывате в ноль, а то у вас пин начинает меняться в цикле бесконечно.

Конкретно где поправить в коде - не вижу. Приема команд с приемника нет, что именно управляет включением 8 выхода - ХЗ

Я могу выложить и передатчик и приемник полностью, 8 пином управляет кнопка на передатчике, что тут непонятного !

передатчик:

#include <SPI.h>
#include "RF24.h"
#include <nRF24L01.h>
RF24 radio(9,10); 
const uint64_t pipe = 0xE8E8F0F0E1LL; 
int msg[1];
int msh[1];
int joyVert = A0; // Vertical  
int joyHorz = A1; // Horizontal
int val_1; 
int val_2;
int button = A2;
 
// Joystick Values - Start at 512 (middle position)
int joyposVert = 512;
int joyposHorz = 512;
 
void setup(void)
{
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe( pipe);
  pinMode(button, INPUT_PULLUP);
}
void loop() 
{
  if (digitalRead(button) == HIGH)
  msh[1] = 255;radio.write(msg, 1);
  Serial.println(msh[1]);
  val_1 = analogRead(joyVert),val_1 = map(val_1, 0, 1023, 0, 127),msg[0] = val_1,radio.write(msg, 1);
  val_2 = analogRead(joyHorz),val_2 = map(val_2, 0, 1023, 128, 254),msg[0] = val_2,radio.write(msg, 1);
 
}
 
Приемник:
 
#define led 8
#include <SPI.h>
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL; 
//int msg[1];
int msg[1];
int msh[1];
boolean ledOn = false;
boolean lastBut = HIGH;
long time = 0;  
long debounce = 300;
int data; 
int data1; 
int pos;
int fspeed; // движение вперед
int bspeed; // движение назад
int steer;
const int in1 = 7; // direction pin 1
const int in2 = 6; // direction pin 2
const int in3 = 4; // direction pin 1
const int in4 = 2; // direction pin 2
const int ena = 5; // PWM pin to change speed
const int enb = 3; 
byte IsConnect;
void setup()
{
  pinMode(led, OUTPUT);
  Serial.begin(9600);
  pinMode(in1, OUTPUT); // connection to L298n
  pinMode(in2, OUTPUT); // connection to L298n
  pinMode(ena, OUTPUT); // connection to L298n
  pinMode(in3, OUTPUT); // connection to L298n
  pinMode(in4, OUTPUT); // connection to L298n
  pinMode(enb, OUTPUT); // connection to L298n
  //servo1.attach(3); 
  // delay(10);
  radio.begin();
  radio.openReadingPipe(1,pipe); 
 // radio.openReadingPipe(pipe); 
  radio.startListening();
}
 
int MotoL, MotoR;
int ValStickX, ValStickY;
void loop() {
 
  if (radio.available()){
    radio.read(msg, 1);
    IsConnect = HIGH;
  }
  else{
    IsConnect = LOW;
  }
 
if (msh[1] == 255 && lastBut == HIGH && millis() - time > debounce)
{
ledOn = !ledOn;
lastBut = HIGH;
 time = millis();
}
else // Иначе,
{
  lastBut = digitalRead(lastBut);
 
 }  
  digitalWrite(led, ledOn);
 
 
Serial.println(msh[1]);
 
  if (msg[0] <128 && msg[0] >-1){ 
    data = msg[0]; 
    ValStickX = map(data, 0, 127, -255, 254); 
  } 
 
  if (msg[0] < 254 && msg[0] > 127){ 
    data = msg[0]; 
    ValStickY = map(data, 128, 255, -255, 254); 
  }
 
 
  if(abs(ValStickX) < 20){
    ValStickX = 0;
  }
  if(abs(ValStickY) < 20){
    ValStickY = 0;
  }
 
  MotoL = ValStickX - (ValStickY /1.2); 
  MotoR = ValStickX + (ValStickY /1.2);
  if(IsConnect==LOW){
    MotoL=0;
  }
  if(IsConnect==LOW){
    MotoR=0;
  }
//  Serial.println("ML: "+String(MotoL)+", MR: "+String(MotoR));
 
  if(MotoL > 255){
    MotoL = 255;
  }
  if(MotoR > 255){
    MotoR = 255;
  }
  if(MotoL < -255){
    MotoL = -255;
  }
  if(MotoR < -255){
    MotoR = -255;
  }
 
  Control4WD(MotoL, MotoR);
 
}
 
void Control4WD(int mLeft, int mRight){
  //  Serial.println("ML: "+String(mLeft)+", MR: "+String(mRight));
  bool directionL, directionR; // направление вращение для L298N
  byte valueL, valueR; // значение ШИМ M1, M2 (0-255)
  if(mLeft > 0){
    valueL = mLeft;
    directionL = 0;
  }
  else if(mLeft < 0){
    valueL = abs(mLeft);
    directionL = 1;
  }
  else{
    directionL = 0;
    valueL = 0;
  }
 
  if(mRight > 0){
    valueR = mRight;
    directionR = 0;
  }
  else if(mRight < 0){
    valueR = abs(mRight);
    directionR = 1;
  }
  else {
    directionR = 0;
    valueR = 0;
  }
 
  digitalWrite(in1, directionL); 
  digitalWrite(in2, !directionL); 
  digitalWrite(in3, directionR); 
  digitalWrite(in4, !directionR); 
  analogWrite(ena, valueL); 
  analogWrite(enb, valueR); 
}
 
 
 
 
 
 
 
 
 

 

b707
Offline
Зарегистрирован: 26.05.2017

IgorBorNN пишет:

b707:

Вы думаете я не пытаюсь что то сделать и чему то научиться, Вы ошибаетесь. Дайте задачу человеку который вообще в электронике и программировании 0, да он просто скажет что нафиг оно мне нужно. А я хоть как то пытаюсь помочь человеку в инвалидной коляске. 

не надо читать моралей.  Если не хотите разбираться в программировании - есть другой путь. Займитесь тем, что умееете, заработайте на этом денег и на эти деньги закажите разработку своего устройства какому-то продвинутому студенту.

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

b707 пишет:

IgorBorNN пишет:

b707:

Вы думаете я не пытаюсь что то сделать и чему то научиться, Вы ошибаетесь. Дайте задачу человеку который вообще в электронике и программировании 0, да он просто скажет что нафиг оно мне нужно. А я хоть как то пытаюсь помочь человеку в инвалидной коляске. 

не надо читать моралей.  Если не хотите разбираться в программировании - есть другой путь. Займитесь тем, что умееете, заработайте на этом денег и на эти деньги закажите разработку своего устройства какому-то продвинутому студенту.

Благодарю, вот когда доживешь до моих лет, узнаешь как это заработать и купить, всего доброго и здоровья вам желаю !!!

b707
Offline
Зарегистрирован: 26.05.2017

IgorBorNN пишет:

Благодарю, вот когда доживешь до моих лет, узнаешь как это заработать и купить, всего доброго и здоровья вам желаю !!!

ты достал давить на жалость. Если ты к старости стал туповат, то не думай, что у всех так же. Здесь большинство участников - чуть младше тебя, однако не считает за гордость книжки почитать и в гугле покопаться, когда не могут решить проблему.

И тебе всего доброго.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Долбоклюй! Поставь задачу и обратись за помощью. Я бы помог, например. Если бы ты пальцы тут не гнул, что тебе все должны за Афган и еще за что-то. Мне 47 и я тебе спасибо за Афган говорить не стану. Ты детям мозг еби за патриотизм, мне - не надо.

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

Ты споришь с профессионалами? Сам ты ничего не сделаешь путного, забудь.

......................

Пиши нормально постановку задачи и сопровождение - про все дела, про то, что помочь инвалиду и т.п. Куча народа откликнется. А понты свои выкинь или засунь куда-нибудь. Я, повторю, готов сделать твою задачу. Не тебе мозги вправлять, а просто с ноля сделать.

Штоп не пи...дил: я тоже инвалид. Диабет, сердце, суставы и 150 кг. Я по полгода с костылем хожу. Самое веселое на байке с костылем (к кофру привязываю). У народа на дороге - счастье!

 

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

wdrakula пишет:

Долбоклюй! Поставь задачу и обратись за помощью. Я бы помог, например. Если бы ты пальцы тут не гнул, что тебе все должны за Афган и еще за что-то. Мне 47 и я тебе спасибо за Афган говорить не стану. Ты детям мозг еби за патриотизм, мне - не надо.

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

Ты споришь с профессионалами? Сам ты ничего не сделаешь путного, забудь.

......................

Пиши нормально постановку задачи и сопровождение - про все дела, про то, что помочь инвалиду и т.п. Куча народа откликнется. А понты свои выкинь или засунь куда-нибудь. Я, повторю, готов сделать твою задачу. Не тебе мозги вправлять, а просто с ноля сделать.

Штоп не пи...дил: я тоже инвалид. Диабет, сердце, суставы и 150 кг. Я по полгода с костылем хожу. Самое веселое на байке с костылем (к кофру привязываю). У народа на дороге - счастье!

 

Пальцы вы выгибаете так что аж я чевствую, задача давно уже описана и скетчи выложены в которых ничего менять не надо кроме передачи нажатия на кнопку и на приемнике зажечь светодиод при последующем нажатии погасить СД и все, все остальное прекрасно работает.

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Я никого сдесь не оскорблял, по этому Ваше неуважение видно из далека.

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

wdrakula пишет:

что тебе все должны за Афган и еще за что-то.

Мне никто ничего не должен так же как и я никому и ничего. Благодарю !

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

IgorBorNN пишет:

А таких как ты я в Афгане давил как мразей !!!

О_О дед-героин афганский хмурый

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Клапауций 112 пишет:

IgorBorNN пишет:

А таких как ты я в Афгане давил как мразей !!!

О_О дед-героин афганский хмурый

Дерьма везьде хватает, увы но этого не избежать.

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Если кому то нагрубил извеняюсь, за помощь благодарю, Всего Всем Доброго и здоровья !!!

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

IgorBorNN пишет:

Дерьма везьде хватает, увы но этого не избежать.

так, кого ты там давил в Афгане, вытиран?

IgorBorNN
Offline
Зарегистрирован: 23.12.2015

Еще раз благодарю всех ! задача решена,нашел где необходимо было исправить, все работает !!!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

IgorBorNN пишет:

Еще раз благодарю всех ! задача решена,нашел где необходимо было исправить, все работает !!!

Только к массиву обращается по-прежнему неправильно, а, значит, работает до первого глюка.

Вам же как человеку сказали, что так к массиву не обращаются, а Вы нет спросить в чём проблема, полезли в бутылку - спорить тут, доказывать что-то. ну, валяйте, спорьте.

Удачи!

И ещё, глупо козырять тут возрастом. ну, 60 Вам, и что? А мне 55. И что? Может ещё письками померяемся?

Какая нахрен разница в возрасте? Человек может быть умным или дураком, вежливым или хамом в любом возрасте.