Помогите подключить библиотеку 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
зачем это вообще непонятно
а брать из переменной th
а фиг знает, это я слизал у товарисча)) хотя это полный тахо и он у него робит
//******************************************************************** unsigned long micros_th = 0; volatile int tz; volatile int th; //импульсы тахометра //******************************************************************** void setup(){ Serial.begin(115200); //инициализация ком порта attachInterrupt(0, tahometr, RISING); //прерывание тахометра по фронтам импульса } //******************************************************************** void loop(){ } //******************************************************************** void tahometr(){ //измеряем частоту на входе тахометра по прерыванию th=(900000.0/( micros() - micros_th)); micros_th = micros(); tz = 30; }вот, так то . спасибо еще раз
как считаешь , если уберу
20 tz = 30; он считать будет? и вообще, Жека если не сложно, объясни что происходит в функции? поэтапно.
могу кинуть полный скетч, подскажешь как из массива вырвать рабочий кусок тахометра?
два импульса на оборот, а данный скетч выдаст общее кол-во импульсов за интервал времени или переведет в обороты/мин? или просто время в миллис между импульсами?
да все здесь и считается. больше ничего не надо
//******************************************************************** void tahometr(){ //измеряем частоту на входе тахометра по прерыванию th=(900000.0/( micros() - micros_th)); // считаем частоту, просто делим 900000 на время между импульсами. micros() это время сейчас, micros_th время предыдущего импульса micros_th = micros(); //после того как посчитали запоминаем текущее время чтобы использовать при следующем импульсе tz = 30;//хз зачем }похоже сразу в обороты в мин переведет
все равно по тахометру надо будет проверять правильное ли число 900000 стоит или нет. возможно конктретно под твой автомобиль придется править
понял Жека спасибо, буду должен)), ты сам откуда? я вот анапский.
чет на 2000 реальных выдает цифру 200. эт как так?
да забей. я из москвы
значит вместо 900000 надо 9000000
оо, а я на прошлой неделе только прилетел и москвы.
в гостях о родных был на полежаевской и на кутузовской
)
ну что получилось?
холодно у вас. а у нас еще теплая оень))сегодня первый день дождь моросит, а так более 18 было
пока не пробовал, сейчас дождь усилился, мокнуть не хочу. машинка на улице, утихнет проверю
да должно получится. а погода какая есть
//******************************************************************** unsigned long micros_sp = 0, micros_th = 0; volatile int tz; volatile int sz; volatile int sp; //импульсы спидометра volatile int th; //импульсы тахометра int analogInput [15]; //массив аналоговых значений int digitalInput[29]; //массив цифровых значений String resultString = ""; //строка int i; //счетчик циклов //******************************************************************** void setup(){ for(i=0; i<=14; i++){ //обнуление массива аналоговых значений digitalInput[i]=0; } for(i=0; i<=28; i++){ //обнуление массива цифровых значений analogInput[i]=0; } Serial.begin(115200); Serial2.begin(115200); //инициализация ком порта attachInterrupt(0, speedometr, RISING); //прерывание спидометра по фронтам импульса attachInterrupt(1, tahometr, RISING); //прерывание тахометра по фронтам импульса } //******************************************************************** void loop(){ analogInput[0] = analogRead(4); // B13 напряжение analogInput[1] = analogRead(3); // B24 топливо analogInput[2] = analogRead(5); // B21 температура охлаждения analogInput[3] = analogRead(8); // B20 температура в салоне analogInput[4] = analogRead(7); // B19 температура за бортом analogInput[5] = analogRead(1); // дифферент analogInput[6] = analogRead(2); // крен analogInput[7] = analogRead(9); // B17 аналог analogInput[8] = analogRead(10); // B18 аналог analogInput[9] = analogRead(11); // B15 резерв analogInput[10] = analogRead(12); // B16 резерв analogInput[11] = analogRead(13); // B13 резерв analogInput[12] = analogRead(14); // B14 резерв analogInput[13] = analogRead(15); // B11 резерв analogInput[14] = analogRead(6); // B22 резерв digitalInput[0] = digitalRead(47); // В2 зажигание digitalInput[1] = digitalRead(9); // В4 ночной скин //******************************************************************** digitalInput[2] = digitalRead(53) + // В8 кнопка выбора digitalRead(52) * 2; // В7 кнопка действия //******************************************************************** digitalInput[3] = digitalRead(32) + // A14 левый поворот digitalRead(33) * 2; // A13 правый поворот //******************************************************************** digitalInput[4] = digitalRead(28) + // A18 габарит digitalRead(29) * 2; // A17 дальний //******************************************************************** digitalInput[5] = digitalRead(30) + // А16 птф передние digitalRead(31) * 2; // A15 птф задний //******************************************************************** digitalInput[6] = digitalRead(24); // A23 чек digitalInput[7] = !digitalRead(49); // B 9 - уровень тж digitalInput[8] = !digitalRead(27); // A19 - ручник digitalInput[9] = digitalRead(50); // B 3 износ колодок digitalInput[10] = 0;// !digitalRead(47); // B10 - лампа топлива digitalInput[11] = !digitalRead(51); // B12 - уровень ож digitalInput[12] = !digitalRead(22); // А24 - давление масла digitalInput[13] = digitalRead(37); // A20 лампа вентилятора digitalInput[14] = digitalRead(23); // A23 зарядка digitalInput[15] = 0;//digitalRead(22); // A 5 абс digitalInput[16] = digitalRead(26); // A20 srs digitalInput[17] = digitalRead(18); // A 3 ремень digitalInput[18] = digitalRead(46); // B 1 двери digitalInput[19] = digitalRead(42); // B 2 p digitalInput[20] = digitalRead(39); // А22 r digitalInput[21] = digitalRead(24); // A 7 n digitalInput[22] = 0;//digitalRead(46); // B 6 d digitalInput[23] = 0;//digitalRead(52); // B 5 s digitalInput[24] = digitalRead(25); // A 8 резерв digitalInput[25] = 0;//digitalRead(26); // A 9 резерв digitalInput[26] = digitalRead(27); // A10 резерв digitalInput[27] = 0;//digitalRead(28); // A11 резерв digitalInput[28] = digitalRead(44); // B 4 резерв resultString = String(resultString + sp); resultString = String(resultString + ","); resultString = String(resultString + th); resultString = String(resultString + ","); for(i=0; i<=14; i++){ //передаем аналоговые данные из массива в COM-port resultString = String(resultString + analogInput[i]); resultString = String(resultString + ","); } for(i=0; i<=28; i++){ //передаем цифровые данные из массива в COM-port resultString = String(resultString + digitalInput[i]); } resultString = String(resultString + ":\n"); Serial2.print (resultString); Serial.print (resultString); resultString = String(""); tz = tz - 1; sz = sz - 1; if (tz == 0){th = 0;} if (sz == 0){sp = 0;} delay(50); } //******************************************************************** void speedometr(){ //измеряем частоту на входе спидометра по прерыванию sp=(900000.0/( micros() - micros_sp)); micros_sp = micros(); sz = 10; } //******************************************************************** void tahometr(){ //измеряем частоту на входе тахометра по прерыванию th=(2900000.0/( micros() - micros_th)); micros_th = micros(); tz = 10; } вотсмотри, это полный скетч. почему то в этом другие цифры, 2900000 и тз 10 почему так???для чего эта переменная tz?
так ведь спидометр и тахометр. у каждого свое прерывание
а tz зачем незнаю
но по ней обнуляется тахометр
это что то типа контроля всего авто на ноуте или планшете?
как это не странно на меге с выводом на свисток( мини писи под андроид) по вафле.на свистке флешь анмация со стрелками и прочими показометрами. вообщем круть полная))
хотя можно и на андроиде и на вин
любой гаджет пойдет
скинь ссылку хоть на проект глянуть для чего все это
http://compcar.ru/forum/showthread.php?t=9704 пожалуйста
оказывается уже видел. крисиво сделали
да суперски)) и защитили неплохо)) сломать не выходит
)
Жека добрый вечер. скажи что этому куску скетча нужно? ругается гад :
if (val >= 1000 && rpm = 0) {digitalWrite(8, LOW); // если темп больше или ровна 85С и обороты ровны 0,гасим свети прыгаем на label goto label; } if (val >= 1000 && rpm > 0) {digitalWrite(8, LOW);//если темп больше 85С и обороты больше 0,гасим свет и прыгаем на label goto label; } if (val < 1000 && rpm = 0) {ustanovkaServa;}//температ меньше 85 и оборты = 0, запускаем функцию начальной устан сервы if (val < 1000 && rpm >= 750) {zapuskPid;}//темп меньше 85 и обороты больше или ровны 750. запускаем пид }