Ok, I have googled my problem. Found the solution to the digital driver signing problem, and got all my other Arduino boards working just fine. Arduino Diecemila, Mega, Nano etc etc.
But when connecting my Arduino UNO it just says:
Quote
The drivers for this device are not installed. (Code 28)
To find a driver for this device, click Update Driver.
I tried pointing it to the latest FTDI driver folder, but it just won't do the trick. So I'm hoping anyone here have a solution? Help?
// dewPoint function NOAA // reference: http://wahiduddin.net/calc/density_algorithms.htm double dewPoint(double celsius, double humidity) { double A0= 373.15/(273.15 + celsius); double SUM = -7.90298 * (A0-1); SUM += 5.02808 * log10(A0); SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ; SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ; SUM += log10(1013.246); double VP = pow(10, SUM-3) * humidity; double T = log(VP/0.61078); // temp var return (241.88 * T) / (17.558-T); }
// delta max = 0.6544 wrt dewPoint() // 5x faster than dewPoint() // reference: http://en.wikipedia.org/wiki/Dew_point double dewPointFast(double celsius, double humidity) { double a = 17.271; double b = 237.7; double temp = (a * celsius) / (b + celsius) + log(humidity/100); double Td = (b * temp) / (a - temp); return Td; }
void setup() { Serial.begin(9600); // LED pinMode(ledPin,OUTPUT); // VirtualWire setup vw_setup(2000); // Bits per sec
}
void loop() {
// Read and store Sensor 1 data int chk = DHT11.read(DHT11PIN); Sensor1Data = DHT11.temperature; delay(2000); // Convert integer data to Char array directly itoa(Sensor1Data,Sensor1CharMsg,10);
digitalWrite(13, true); // Turn on a light to show transmitting vw_send((uint8_t *)Sensor1CharMsg, strlen(Sensor1CharMsg)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13, false); // Turn off a light after transmission delay(200); } // // END OF FILE //
Reciever:
Code:
/*
Sensor Receiver By Markus Ulfberg 2012-07-06
Gets a sensor reading 0-1023 in a char array from RF Transmitter unit via VirtualWire converts char array back to integer
// Non-blocking if (vw_get_message(buf, &buflen)) { int i; // Turn on a light to show received good message digitalWrite(13, true);
// Message with a good checksum received, dump it. for (i = 0; i < buflen; i++) { // Fill Sensor1CharMsg Char array with corresponding // chars from buffer. Sensor1CharMsg[i] = char(buf[i]); }
// Null terminate the char array // This needs to be done otherwise problems will occur // when the incoming messages has less digits than the // one before. Sensor1CharMsg[buflen] = '\0';
// Convert Sensor1CharMsg Char array to integer Sensor1Data = atoi(Sensor1CharMsg);
digitalWrite(13, true); // Flash a light to show transmitting vw_send((uint8_t *)msg, strlen(msg)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13, false); delay(2000); }
Hm, sorry for not understanding. But the value I'm sending could just be a normal int.
Code:
Serial.print("Temperature (oC): "); int convert = DHT11.temperature; Serial.println(convert);
char *msg[3] = convert;
digitalWrite(13, true); // Flash a light to show transmitting vw_send((uint8_t *)msg, strlen(3)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13, false); delay(2000);
So after converting my float value to a int, it's basically the value of 23-25 around there. What do you mean by put 4 byte in msg[0] thru msg[3]?
But I've ran into another problem, the VirtualWire library is hard to understand.
I'm using a DHT11 to measure the temperature, now getting the readings from the DHT11 is easy, getting em shown in the serial monitor is easy.
Problem comes when I want to send the readings using VirtualWire, thats hard Or I'm sure I'm missing something...
This is my code:
Problems starts in "char *msg = char(DHT11.temperature);" it seems.
Code:
// transmitter.pde // // Simple example of how to use VirtualWire to transmit messages // Implements a simplex (one-way) transmitter with an TX-C1 module // // See VirtualWire.h for detailed API docs // Author: Mike McCauley (mikem@open.com.au) // Copyright (C) 2008 Mike McCauley // $Id: transmitter.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
// dewPoint function NOAA // reference: http://wahiduddin.net/calc/density_algorithms.htm double dewPoint(double celsius, double humidity) { double A0= 373.15/(273.15 + celsius); double SUM = -7.90298 * (A0-1); SUM += 5.02808 * log10(A0); SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ; SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ; SUM += log10(1013.246); double VP = pow(10, SUM-3) * humidity; double T = log(VP/0.61078); // temp var return (241.88 * T) / (17.558-T); }
// delta max = 0.6544 wrt dewPoint() // 5x faster than dewPoint() // reference: http://en.wikipedia.org/wiki/Dew_point double dewPointFast(double celsius, double humidity) { double a = 17.271; double b = 237.7; double temp = (a * celsius) / (b + celsius) + log(humidity/100); double Td = (b * temp) / (a - temp); return Td; }
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 2
#include <VirtualWire.h>
int tempsend; char tempconv; char fuck;
void setup() { Serial.begin(9600); // Debugging only Serial.println("setup"); Serial.println("DHT11 TEST PROGRAM "); Serial.print("LIBRARY VERSION: "); Serial.println(DHT11LIB_VERSION); Serial.println();
// Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(2000); // Bits per sec }
void loop() { Serial.println("\n");
int chk = DHT11.read(DHT11PIN);
Serial.print("Read sensor: "); switch (chk) { case 0: Serial.println("OK"); break; case -1: Serial.println("Checksum error"); break; case -2: Serial.println("Time out error"); break; default: Serial.println("Unknown error"); break; }
digitalWrite(13, true); // Flash a light to show transmitting vw_send((uint8_t *)msg, strlen(msg)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13, false); delay(2000);
}
Since it complains I can't do "'int' to 'char*'", I tried to set a char() conversion first. But then it complains about this "'char' to 'char*'". So I try to remove the * infront of MSG, but then I get the warning about a constant char...
I'm really confused here, anyone want to help me think this one out?
Sigh, I wish VirtualWire would have more examples showing how to send other values than 'const char'.
So, I'm testing the RF434, with VirtualWire. And is there a way to make it translate what it recieved into a text? Instead of hex codes for each letter.
I've been looking for a serial lcd display that either has more lines, or more chars on each line than the regular 20x4 ones. and that comes bundled with a lcd driver.
Not sure "regular" you are referring to but many graphics lcds go (way) above that and many of them are serial.
I've been looking for a serial lcd display that either has more lines, or more chars on each line than the regular 20x4 ones. and that comes bundled with a lcd driver.
Made this simple yet cool led blinker, it just blinks several leds depending on how loud the sound is. It's pretty neat and blinks perfectly to beats. It looks much better in real action rather than on the video because of the fps. But you get the idea of how it looks.
Well, I'm working on a small robot, and I need a way to measure the voltage on the batteries. So far I've just hooked + up to the analog0, and gets a value. But it seems like the analog reference gets lowered to the voltage the arduino is getting fed with.
And in Arduino 022 it compiles perfectly with no errors, but when using the library in Arduino 1.0 I get this error:
Code:
In file included from UltrasonicDemoMod.cpp:1: D:\Programming\Arduino\Arduino\libraries\Ultrasonic/Ultrasonic.h:11:22: error: WProgram.h: No such file or directory
I select that board type and compiled just fine. Perhaps you need to uninstall and reinstall the Arduino IDE.
This is strange, I decided to try and unpack the Arduino IDE one more time. But instead of overwriting the files, I deleted the old ones first. And now it's compiling ! Thanks for all the great help, and I'm sorry for not trying this in the first place