manu_245,
Ага крутиться начал,уже хорошо но сдается мне что датчик положения он не видит и тупо крутит то вправо то влево причем на кнопки не реагирует
manu_245,
Ага крутиться начал,уже хорошо но сдается мне что датчик положения он не видит и тупо крутит то вправо то влево причем на кнопки не реагирует
manu_245,
а вэтих штуках случайно не задаются параметры аналогового входаPHP код:
/*
if(analogRead(val1) > max_1-10 && analogRead(val2) < min_2+10) flow=2;
if(analogRead(val1) > max_1-10 && analogRead(val2) > max_2-10) flow=0;
if(analogRead(val1) > min_1-10 && analogRead(val1) < min_1+10) flow=1;
*/
Эта часть вообще закомментирована, не используется.
Для проверки кнопками можно так сделать:
другие обращения к m3_l и m3_r при этом необходимо отключить.PHP код:
if(res_dt1>=556 && res_dt1<=566)//vent_s ++. кнопка TRACK UP или другая кнопка (соответственно переназначить надо)
{
digitalWrite(m3_r,HIGH);
}
else digitalWrite(m3_r,LOW);
if(res_dt1>=475 && res_dt1<=485)//vent_s --. кнопка TRACK DOWN
{
digitalWrite(m3_l,HIGH);
}
else digitalWrite(m3_l,LOW);
Должен крутить влево в право только при нажатии кнопок.
Для проверки и настройки можно в loop добавить:
Serial.println(val3);
и в терминале посмотреть как меняются значения. при этом остальные обращения к порту для удобства лучше отключить.
Соответственно можно будет увидеть увеличивается или уменьшается значение АЦП при движении m3_r и тогда возможно поправить код из предыдущего поста.
manu_245
Спасибо за внимание может хоть к старости чонить понимать буду в энтих языках и каракулях.Но помоему я мозг не токо себе полосчу.
Надоело мне извращаться и решил драйвер ипонский проверить ,а он редиска возьми и дух испусти. Счас прилужу 293 и уж помучаю его.
manu_245
Какашка какая не работает.
Я в шоке.
Эти кривые буковки меня с ума сводят.
Вот че получилось все равно не работает либо поворачивает мотор и до перезагрузки.PHP код:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <EEPROM.h>
#include <ks0108.h>
#include "ks0108_Mega.h" // include this for the Arduino Mega other ATmega1280 boards
#include "SystemFont5x7.h"//шрифт 5х7
#include "legs1.h"//значек(воздух вниз)
#include "both1.h"//значек(воздух вверх-вниз)
#include "screen1.h"//значек(воздух вверх)
#include "side1.h"//значек (воздух вперед)
#include "DS1.h"//шрифт крупный(температура)
int address = 0;
#define ONE_WIRE_BUS 50 //датчики на 50 ноге
#define TEMPERATURE_PRECISION 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
uint8_t Thermometer0[8], Thermometer1[8], Thermometer2[8], Thermometer3[8];//адреса датчиков
float temp0, temp1, temp2, temp3, temp_s=25;//t0 - двигатель, t1 - воздуховод, t2 - улица, t3 - салон, temp_s - заданая
byte bytes[8];
int err0, err1, err2, err3;
int error=0;
int vent_set=0;
#define m3_l 43 //третий влево(заслонка горячий-холодный)
#define m3_r 44 //третий вправо(заслонка горячий-холодный)
#define en 38 //enable
#define JOY 1 //АЦП джойстик
int res_dt1;//джойстик
void setup(void)
{
pinMode(m3_l,OUTPUT);
pinMode(m3_r,OUTPUT);
pinMode(en,OUTPUT);
digitalWrite(m3_l,LOW);
digitalWrite(m3_r,LOW);
digitalWrite(en,HIGH);
sensors.begin();
Serial.begin(115200);
}
void loop(void)
{
res_dt1 = analogRead(JOY); // прочитать данные АЦП
/*
bytes[0] = analogRead(val1) & 255;
bytes[1] = (analogRead(val1) & 768) >> 8;
bytes[2] = analogRead(val2) & 255;
bytes[3] = (analogRead(val2) & 768) >> 8;
bytes[4] = analogRead(val3) & 255;
bytes[5] = (analogRead(val3) & 768) >> 8;
Serial.write( bytes,6);//отправляем в комп
*/
}
void buttons()
{
if(res_dt1>=715 && res_dt1<=725)//temp_s++. кнопка VOL UP
{
digitalWrite(m3_r,HIGH);
}
else digitalWrite(m3_r,LOW);
if(res_dt1>=635 && res_dt1<=645)//temp_s--. кнопка VOL DOWN
{
digitalWrite(m3_l,HIGH);
}
else digitalWrite(m3_l,LOW);
}
В эмуляторе проверил. Работает.
PHP код:
#define m3_l 43 //третий влево(заслонка горячий-холодный)
#define m3_r 44 //третий вправо(заслонка горячий-холодный)
#define en 38 //enable
#define val3 7 //АЦП третьего мотора
#define JOY 1 //АЦП джойстик
int res_dt1;//джойстик
void setup(void)
{
pinMode(m3_l,OUTPUT);
pinMode(m3_r,OUTPUT);
pinMode(en,OUTPUT);
digitalWrite(m3_l,LOW);
digitalWrite(m3_r,LOW);
digitalWrite(en,HIGH);
Serial.begin(115200);
}
void loop(void)
{
res_dt1 = analogRead(JOY); // прочитать данные АЦП
buttons();
Serial.println(analogRead(val3));
}
void buttons()
{
if(res_dt1>=715 && res_dt1<=725)//temp_s++. кнопка VOL UP
{
digitalWrite(m3_r,HIGH);
}
else digitalWrite(m3_r,LOW);
if(res_dt1>=635 && res_dt1<=645)//temp_s--. кнопка VOL DOWN
{
digitalWrite(m3_l,HIGH);
}
else digitalWrite(m3_l,LOW);
}
manu_245
Прикольно и правда работает.
Ниче не понимаю.Эт называется гляжу в книгу вижу фигу.
Serial.begin(115200);-это важная весч?
buttons();
Serial.println(analogRead(val3));и это
остальное один в один![]()
manu_245
СПАСИБО!
Ниче не понимай,но работает.
Гений ёмаё.
Сам исче долго кипел бы,блин,тяжело жить с деревянной головой.
Вечером попробую это дело к большой присобачить.
Вобчем то мне от заслонки не много надо было,только чтоб поворачивалась сколько температуру выбрал.
Исче раз спасибо.
Эту тему просматривают: 5 (пользователей: 0 , гостей: 5)