Помогите подключить библиотеку S1D13700 к due
- Войдите на сайт для отправки комментариев
Ср, 11/06/2014 - 11:38
Здравствуйте!
библиотеку ставлю:C:\Users\Серёга\Documents\Arduino\libraries\S1D
но при проверке выдает ошибку:
In file included from sketch_jun11a.ino:1:
C:\Users\Серёга\Documents\Arduino\libraries\S1D/S1D13700.h:45: fatal error: WProgram.h: No such file or directory
compilation terminated.
Здравствуйте!
библиотеку ставлю:C:\Users\Серёга\Documents\Arduino\libraries\S1D
но при проверке выдает ошибку:
In file included from sketch_jun11a.ino:1:
C:\Users\Серёга\Documents\Arduino\libraries\S1D/S1D13700.h:45: fatal error: WProgram.h: No such file or directory
compilation terminated.
программа arduino-1.5.6-r2-windows-32
так вам же все написала идэ. откройте файл на который ругается и замените в тексте WProgram.h на Arduino.h
Спасибо большое.
появилось массу ошибок но уже с програмной частью.
C:\Users\Серёга\Documents\Arduino\libraries\S1D\S1D13700.cpp: In function 'void setData(unsigned char)':
C:\Users\Серёга\Documents\Arduino\libraries\S1D\S1D13700.cpp:87: error: 'DDRD' was not declared in this scope
C:\Users\Серёга\Documents\Arduino\libraries\S1D\S1D13700.cpp:88: error: 'PORTD' was not declared in this scope
C:\Users\Серёга\Documents\Arduino\libraries\S1D\S1D13700.cpp: In member function 'unsigned char S1D13700::readData()':
C:\Users\Серёга\Documents\Arduino\libraries\S1D\S1D13700.cpp:214: error: 'DDRD' was not declared in this scope
C:\Users\Серёга\Documents\Arduino\libraries\S1D\S1D13700.cpp:226: error: 'PIND' was not declared in this scope
если я правильно думаю то не совпадают функция и пины мк?
ссылка на библиотеку http://www.cafelogic.com/2011/new-s1d13700-beta-library-for-arduino/
удалите первое сообщение плиз.
конечно. если хотите запустить придется много править в библиотеке
конечно хочу!
не сами ручками
Вот нашел сборку библиотек к due!!!
Вот только еще не разобрался как все работает.
https://github.com/delsauce
так вам же все написала идэ. откройте файл на который ругается и замените в тексте WProgram.h на Arduino.h
PID_v1.cpp в папке ардуино есль папка с библиотеками. находишь свою. а там внутри файл PID_v1.cpp
открой его и все сам увидишь
но почему называет pid это странно
PID_v1.cpp в папке ардуино есль папка с библиотеками. находишь свою. а там внутри файл PID_v1.cpp
открой его и все сам увидишь
но почему называет pid это странно
это не папки а файл
лучше этим, но можно и блокнотом
http://notepad-plus-plus.org/
странно, нашел, поменял, а она все равно пишет тоже самое. причем при сохранении она закричала: что только для чтения и сохранить можно только в другом месте, так и сделал. сохранил в другом месте , потом удалил предыдущие срр и вставил новые. теперь в срр написано<Arduino.h> и все равно она выдает ту же ошибку. почему???????
вот что пишет :
вот полный текст: /**********************************************************************************************
Жека , в чем может быть проблема?
либу пид скачай последнюю
https://github.com/br3ttb/Arduino-PID-Library/zipball/master
спасибо жека, попробую сейчас
слава, жеке! слава богу и моему терпению))) спасиб еще раз.
ну ты даешь))) сколько эмоций. видно долго мучался
я же писал, со вчерашнего вечера , с 9 часов до 5 утра, и с 9 утра снова голову ломал. из за этой проблемы не мог залить скетч готовый, я его неделю собираю уже. хотя по сути совсем простенький
жека может ты мне подскажешь? чет кажется я чет нахимичил с тахометром, как то через попу накидал. у меня по проекту, 2 импульса =1 об/мин. а на деле выходит чет совсем другое. глянь правильно ли ??:: обрати внимание на саму функцию, это не весь скетч, а лишь его малая часть:://********************************************************************
посмотри как код правильно вставлять
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
1
900000.0 зря ты это
2
900000 лучше так
зачем это вообще непонятно
1
tz = 30;
а брать из переменной th
а фиг знает, это я слизал у товарисча)) хотя это полный тахо и он у него робит
1
01
//********************************************************************
02
unsigned
long
micros_th = 0;
03
volatile
int
tz;
04
volatile
int
th;
//импульсы тахометра
05
06
//********************************************************************
07
void
setup
(){
08
09
Serial
.begin(115200);
//инициализация ком порта
10
11
attachInterrupt(0, tahometr, RISING);
//прерывание тахометра по фронтам импульса
12
}
13
//********************************************************************
14
void
loop
(){ }
15
16
//********************************************************************
17
void
tahometr(){
//измеряем частоту на входе тахометра по прерыванию
18
th=(900000.0/( micros() - micros_th));
19
micros_th = micros();
20
tz = 30;
21
}
вот, так то . спасибо еще раз
как считаешь , если уберу
20 tz = 30; он считать будет? и вообще, Жека если не сложно, объясни что происходит в функции? поэтапно.
могу кинуть полный скетч, подскажешь как из массива вырвать рабочий кусок тахометра?
два импульса на оборот, а данный скетч выдаст общее кол-во импульсов за интервал времени или переведет в обороты/мин? или просто время в миллис между импульсами?
да все здесь и считается. больше ничего не надо
1
//********************************************************************
2
void
tahometr(){
//измеряем частоту на входе тахометра по прерыванию
3
th=(900000.0/( micros() - micros_th));
// считаем частоту, просто делим 900000 на время между импульсами. micros() это время сейчас, micros_th время предыдущего импульса
4
micros_th = micros();
//после того как посчитали запоминаем текущее время чтобы использовать при следующем импульсе
5
tz = 30;
//хз зачем
6
}
похоже сразу в обороты в мин переведет
все равно по тахометру надо будет проверять правильное ли число 900000 стоит или нет. возможно конктретно под твой автомобиль придется править
понял Жека спасибо, буду должен)), ты сам откуда? я вот анапский.
чет на 2000 реальных выдает цифру 200. эт как так?
да забей. я из москвы
значит вместо 900000 надо 9000000
оо, а я на прошлой неделе только прилетел и москвы.
в гостях о родных был на полежаевской и на кутузовской
)
ну что получилось?
холодно у вас. а у нас еще теплая оень))сегодня первый день дождь моросит, а так более 18 было
пока не пробовал, сейчас дождь усилился, мокнуть не хочу. машинка на улице, утихнет проверю
да должно получится. а погода какая есть
001
//********************************************************************
002
unsigned
long
micros_sp = 0, micros_th = 0;
003
volatile
int
tz;
004
volatile
int
sz;
005
volatile
int
sp;
//импульсы спидометра
006
volatile
int
th;
//импульсы тахометра
007
int
analogInput [15];
//массив аналоговых значений
008
int
digitalInput[29];
//массив цифровых значений
009
String resultString =
""
;
//строка
010
int
i;
//счетчик циклов
011
//********************************************************************
012
void
setup
(){
013
for
(i=0; i<=14; i++){
//обнуление массива аналоговых значений
014
digitalInput[i]=0;
015
}
016
for
(i=0; i<=28; i++){
//обнуление массива цифровых значений
017
analogInput[i]=0;
018
}
019
Serial
.begin(115200);
020
Serial2.begin(115200);
//инициализация ком порта
021
attachInterrupt(0, speedometr, RISING);
//прерывание спидометра по фронтам импульса
022
attachInterrupt(1, tahometr, RISING);
//прерывание тахометра по фронтам импульса
023
}
024
//********************************************************************
025
void
loop
(){
026
analogInput[0] = analogRead(4);
// B13 напряжение
027
analogInput[1] = analogRead(3);
// B24 топливо
028
analogInput[2] = analogRead(5);
// B21 температура охлаждения
029
analogInput[3] = analogRead(8);
// B20 температура в салоне
030
analogInput[4] = analogRead(7);
// B19 температура за бортом
031
analogInput[5] = analogRead(1);
// дифферент
032
analogInput[6] = analogRead(2);
// крен
033
analogInput[7] = analogRead(9);
// B17 аналог
034
analogInput[8] = analogRead(10);
// B18 аналог
035
analogInput[9] = analogRead(11);
// B15 резерв
036
analogInput[10] = analogRead(12);
// B16 резерв
037
analogInput[11] = analogRead(13);
// B13 резерв
038
analogInput[12] = analogRead(14);
// B14 резерв
039
analogInput[13] = analogRead(15);
// B11 резерв
040
analogInput[14] = analogRead(6);
// B22 резерв
041
042
043
digitalInput[0] = digitalRead(47);
// В2 зажигание
044
digitalInput[1] = digitalRead(9);
// В4 ночной скин
045
//********************************************************************
046
digitalInput[2] = digitalRead(53) +
// В8 кнопка выбора
047
digitalRead(52) * 2;
// В7 кнопка действия
048
//********************************************************************
049
digitalInput[3] = digitalRead(32) +
// A14 левый поворот
050
digitalRead(33) * 2;
// A13 правый поворот
051
//********************************************************************
052
digitalInput[4] = digitalRead(28) +
// A18 габарит
053
digitalRead(29) * 2;
// A17 дальний
054
//********************************************************************
055
digitalInput[5] = digitalRead(30) +
// А16 птф передние
056
digitalRead(31) * 2;
// A15 птф задний
057
//********************************************************************
058
digitalInput[6] = digitalRead(24);
// A23 чек
059
digitalInput[7] = !digitalRead(49);
// B 9 - уровень тж
060
digitalInput[8] = !digitalRead(27);
// A19 - ручник
061
digitalInput[9] = digitalRead(50);
// B 3 износ колодок
062
digitalInput[10] = 0;
// !digitalRead(47); // B10 - лампа топлива
063
digitalInput[11] = !digitalRead(51);
// B12 - уровень ож
064
digitalInput[12] = !digitalRead(22);
// А24 - давление масла
065
digitalInput[13] = digitalRead(37);
// A20 лампа вентилятора
066
digitalInput[14] = digitalRead(23);
// A23 зарядка
067
digitalInput[15] = 0;
//digitalRead(22); // A 5 абс
068
digitalInput[16] = digitalRead(26);
// A20 srs
069
digitalInput[17] = digitalRead(18);
// A 3 ремень
070
digitalInput[18] = digitalRead(46);
// B 1 двери
071
digitalInput[19] = digitalRead(42);
// B 2 p
072
digitalInput[20] = digitalRead(39);
// А22 r
073
digitalInput[21] = digitalRead(24);
// A 7 n
074
digitalInput[22] = 0;
//digitalRead(46); // B 6 d
075
digitalInput[23] = 0;
//digitalRead(52); // B 5 s
076
digitalInput[24] = digitalRead(25);
// A 8 резерв
077
digitalInput[25] = 0;
//digitalRead(26); // A 9 резерв
078
digitalInput[26] = digitalRead(27);
// A10 резерв
079
digitalInput[27] = 0;
//digitalRead(28); // A11 резерв
080
digitalInput[28] = digitalRead(44);
// B 4 резерв
081
082
083
084
resultString = String(resultString + sp);
085
resultString = String(resultString +
","
);
086
resultString = String(resultString + th);
087
resultString = String(resultString +
","
);
088
for
(i=0; i<=14; i++){
//передаем аналоговые данные из массива в COM-port
089
resultString = String(resultString + analogInput[i]);
090
resultString = String(resultString +
","
);
091
}
092
for
(i=0; i<=28; i++){
//передаем цифровые данные из массива в COM-port
093
resultString = String(resultString + digitalInput[i]);
094
}
095
resultString = String(resultString +
":\n"
);
096
Serial2.print (resultString);
097
Serial
.print (resultString);
098
resultString = String(
""
);
099
tz = tz - 1;
100
sz = sz - 1;
101
if
(tz == 0){th = 0;}
102
if
(sz == 0){sp = 0;}
103
delay(50);
104
}
105
//********************************************************************
106
void
speedometr(){
//измеряем частоту на входе спидометра по прерыванию
107
sp=(900000.0/( micros() - micros_sp));
108
micros_sp = micros();
109
sz = 10;
110
}
111
//********************************************************************
112
void
tahometr(){
//измеряем частоту на входе тахометра по прерыванию
113
th=(2900000.0/( micros() - micros_th));
114
micros_th = micros();
115
tz = 10;
116
}
117
118
вотсмотри, это полный скетч. почему то в этом другие цифры, 2900000 и тз 10 почему так???
для чего эта переменная tz?
так ведь спидометр и тахометр. у каждого свое прерывание
а tz зачем незнаю
но по ней обнуляется тахометр
это что то типа контроля всего авто на ноуте или планшете?
как это не странно на меге с выводом на свисток( мини писи под андроид) по вафле.на свистке флешь анмация со стрелками и прочими показометрами. вообщем круть полная))
хотя можно и на андроиде и на вин
любой гаджет пойдет
скинь ссылку хоть на проект глянуть для чего все это
http://compcar.ru/forum/showthread.php?t=9704 пожалуйста
оказывается уже видел. крисиво сделали
да суперски)) и защитили неплохо)) сломать не выходит
)
Жека добрый вечер. скажи что этому куску скетча нужно? ругается гад :
1
if
(val >= 1000 && rpm = 0) {digitalWrite(8, LOW);
// если темп больше или ровна 85С и обороты ровны 0,гасим свети прыгаем на label
2
goto
label;
3
}
4
if
(val >= 1000 && rpm > 0) {digitalWrite(8, LOW);
//если темп больше 85С и обороты больше 0,гасим свет и прыгаем на label
5
goto
label;
6
}
7
if
(val < 1000 && rpm = 0) {ustanovkaServa;}
//температ меньше 85 и оборты = 0, запускаем функцию начальной устан сервы
8
if
(val < 1000 && rpm >= 750) {zapuskPid;}
//темп меньше 85 и обороты больше или ровны 750. запускаем пид
9
}