2015-12-08 2 views
0

У меня есть датчик температуры/влажности DHT11, подключенный к моему ардуино. У меня есть правильное считывание на моем серийном мониторе arduino.digitalRead arduino to max/msp

Теперь я хочу перенаправить эти данные в Max/msp через SerialReceive. У меня есть связь с моим ардуино, и это дает мне шанс, когда я получаю обновление данных, прочитанных моим arduino. Единственное, что я не получаю в Max/msp. Как преобразовать данные из arduino в те же данные в Max/msp.

код Arduino:

#include "dht.h" //library 

dht DHT; 

#define DHTPIN 2 

int VTemperature = 2; 
int VHumidity = 2; 

void setup(){ 
    Serial.begin(9600); 
} 

void loop() 
{ 
    int chk = DHT.read11(DHTPIN); 
    VTemperature = digitalRead(DHT.temperature); 
    Serial.println(DHT.temperature); 
    VHumidity = digitalRead(DHT.humidity); 
    Serial.println(DHT.humidity); 

    Serial.print("\r"); 
    delay(1000); 


} 

Patch Max/MSP

----------begin_max5_patcher---------- 
902.3oc0YtrbaBCEFds8SgFV65QW3l6p1c8cnSlLxfhCoXIFPj5jL4cu5BNE 
mfswxXhyFtHqH8qONmi9g7xzIdKEaXUdfuC9MXxjWlNYhoIcCSZteh2Z5ljb 
Zkoad750KYkdyr+j5tLdNSZ9MTSiUxmxYlN2pahZ419gaZsfJStOiu51RVhz 
pALdw7fYfPHdNbFH.pOhUWCto4u4NAWVk8rY3Q5NYaNK0LehkO7sXuVckSWa 
UxOKyn4duMwkp1krxaYb5RqV2NRVcJepfYUjZM.7VR4q7.2n6wqSmpOLqu3h 
8Wkn1NwR1FyB0qnLiKAURprtB7iBQQcA.cVPEten5iHZN5iMmPjXCUI6ipjt 
nJ9PXcn4RJURu3TAG52lJp.uSmJ9vgkJqYUUzUrOfEQAi2IGv8jCn8yARjdg 
ShLQEDWnPTzwS49XZkSoS6CPI4hJ1kkP9Hn8jCDJ.MZDZOIV07BZxe.P.7Dy 
mRD4hRqhfyiB8ifgyTWEiVDBi0WEDgC7WnxfZQjtq2qW62QSXGIwDQH58.TC 
plzgF3iQ6i2n4AKBPwQeD5tvbU0Gc8d8I2n+Ec2wH34t4H9qvli2UJVW8z5k 
h7wOVEc73RrIhLB5Zb4hO6ZAToHqSxRFCxdZUA7WXK95LsQPGvcdVkbPQ9y4 
fUkBsclvSbWpOs5u9ggl5uwNSdm1za1.GrWwxUqH.BdhQ76hPhaHz5sLvYD5 
6.AMkim8+yCqQKiA8KrUTBx5H0EC4imQKoX0pb1YsU+A2rwTwiXe0MLb6w2X 
Q6DMem161cSNcmool3RgJQCBGj3idmpYAkMbIJ7voZcFzf51UzuX4OxjYIzC 
mpMrEqzApfDfp39WAi5VzGadQZ6wSD8DGIeiO8cguYdU6cye+Wzxncc669Do 
RTWlrcDablA9u5SYUxLNUlI3s5CZm9beVZJi2lSoYU5LOyRD1YjQeUi90pOp 
bHilbBPWUxw+JSN8PM5uVzUjbzeRuqH4fPipbvmqbVmkVHT0gZp0fhMuUtu0 
rGxOvX.b26BsepQe6miMrs0lgawQ5Sj3ngZTudziGO8fGfxFu+QOw7OsfX+7 
Lsu6B73E0m5dnwqRy6lpt0yhwSN8PMwWUpw0XeqaGZQwirxplgzHDkSyGrNA 
MuQoJZkau0LhdkrGy11eaKzRkyNoxVWco0+0lP6aT3sVjxJ40YFCbS0y7qS+ 
GLY+hsE 
-----------end_max5_patcher----------- 

ответ

1

Вы уверены, что вы хотите использовать digitalRead, а не analogRead? Я не знаком с датчиками, которые вы используете, но кажется вероятным, что они потребуют analogRead. Несмотря на это, я только что этот же вопрос через последовательный порт и нашел ответ здесь:

http://www.underwater.ca/blog/arduino-to-max-msp/

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

void loop() { 
    int chk = DHT.read11(DHTPIN); 
    VTemperature = digitalRead(DHT.temperature); 
    Serial.print(DHT.temperature); 
    Serial.print(" ");       //Delimiter, important! 
    VHumidity = digitalRead(DHT.humidity); 
    Serial.println(DHT.humidity); 
    delay(1000); 
}` 

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

+0

В форуме arduino есть много библиотек/патчей для работы! Мне нравится Arduino2maxfordummies. Действительно легко! – Blckpstv