|
451
|
Community / Bar Sport / 8) - Batteries V Capacitors? Which will win?
|
on: November 26, 2012, 11:32:34 pm
|
With this new fancy technology coming along with nano technology, how long before we see nano capacitors? And your bets please on how much capacity can we really realistically get from a nano carbon tube, nano whatever capacitor in the future... do you think we'll see battery sized capacitors holding twice or fifty times more capacity than your regular lithium batteries we have today? I see companies working on the lithium battery up to 4x more capacity we have now, but anyone think capacitors (lightweight) are the future in energy? fast charge and discharge use and how many cycles? considerably more than any rechargeable battery... obviously we're not there yet but fingers crossed, i'm all for dumping batteries in favor of capacitor, huge amounts of energy at your finger tips... well for short bursts at least, but anyway.... let's see what happens.. http://www.extremetech.com/extreme/122763-graphene-supercapacitors-are-20-times-as-powerful-can-be-made-with-a-dvd-burnerinteresting, but what's your views on batteries v capacitors
|
|
|
|
|
454
|
Using Arduino / General Electronics / Basic Principal Injecting Voltage?
|
on: November 22, 2012, 04:06:08 am
|
|
I've always wondered how they added a frequency to carry data or inject a 48v power line to power an arduino via ethernet.
But, what's the rules, i can inject as many AC frequencies providing it's different into an existing being used AC line?
for example, if i decided to power my house from a 22vac low voltage line around the home, what could you "inject" and how? diodes? timing?
|
|
|
|
|
455
|
Using Arduino / Networking, Protocols, and Devices / What makes these "cheaper?"
|
on: November 21, 2012, 08:18:58 am
|
http://www.ebay.com.au/itm/130773402015?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649I've bought 3 of these so far, they've all worked flawlessly so far!, so i bought 2 from 1 more guy for 12 bucks and this for 8 bucks, the original ones i paid $69 (still is!) and that was for a clone from jaycar electronics.. so i thought i'd try $18 shield, it worked well, as i said already, no complaints here so i bought from 2 different guys the same identical boards except 1 guy with a higher rating wanted a dollar more, so i gave him 2 and bought 1 extra and the 8 shield guy just 8 bucks lol Ethernet Shield W5100 For Arduino 328 UNO mega 2560 US $9.07 Approximately AU $8.74 How are they getting so cheap?
|
|
|
|
|
459
|
Using Arduino / General Electronics / Re: Schmitt Trigger.
|
on: November 20, 2012, 05:45:17 am
|
I have several flip flops (d type), and soon some and/or/nand (only one that are schmitt triggered) gates and I hope to create myself 8 bits of memory out of pure logic gates and use Arduino to retrieve / store  i'm a long way but you have to start somewhere lol
|
|
|
|
|
460
|
Using Arduino / General Electronics / Re: Schmitt Trigger.
|
on: November 20, 2012, 03:36:47 am
|
No arduino, i bought a selection of logic chips, just to get a better understanding of logic gates and well computers in general, building 1 bit storage registers using flip flops, how to convert an analouge into a digital signal etc etc... it's just fun right now
|
|
|
|
|
461
|
Using Arduino / General Electronics / Re: Schmitt Trigger.
|
on: November 20, 2012, 03:28:33 am
|
|
you answered half my question, inbuilt set voltages (cool, perfect thanks)
I want to feed a voltage in > 1v = low 5v = high.
but this is a Hex Inverted, if i feed in 1v, i'll get a High, i want a Low, so i'm asking would it be perfectly legit to simply feed it back in and get a low from 1V and a high from 5v
1v in > out (high as it's inverted) > back in ....in out > LOW
using 2 logic gates out of the 4 to get a schmitt trigger LOW/HIGH without an inverted signal.
|
|
|
|
|
462
|
Using Arduino / General Electronics / Schmitt Trigger.
|
on: November 20, 2012, 02:46:51 am
|
Other than using a 555 as a schmitt trigger...  I bought 5 off these off of ebay, I was looking for a simple case of, feed the analogue voltage signal in, 1v, 2v, 4v, 5v, etc, and simply have two states, high or low, so in my head I had this Voltage DC In > Voltage DC 5v High, Voltage 0v LOW. So the best i could find on ebay was the 74HC14 7414 IC CMOS 14 PIN HEX SCHMITT TRIGGER INVERTER. Nor is the voltage threshold of when High becomes high and Low becomes Low (what voltage? is that depending on Voltage in?) - anyway I got 5 of these i'm expecting any moment could i simply feed it into 1 logic gate, get the inverted signal, and feed that into a 2nd gate, giving me a nice Schmitt Trigger ?
|
|
|
|
|
464
|
Using Arduino / Microcontrollers / Re: Attiny2313 analog comparator
|
on: November 19, 2012, 04:08:32 am
|
|
Connecting a capacitor between "VCC to ADC0"
Two things could have taken place.....
1.. the Cap may have been charged to say 13volts, causing > 5v on the ADC 0 2.. if the Cap was not charged, the capacitor would slowly fill to the voltage rail, eg 5v
So does the board get any power, what still works with it? - a sudden voltage spike from a fully charged cap is the only thing that could have done any damage...
|
|
|
|
|
465
|
Using Arduino / Programming Questions / Re: Arduino IDE C/C++
|
on: November 18, 2012, 08:58:39 pm
|
usbMsgLen_t usbFunctionSetup(uchar data[8]) { usbRequest_t *rq = (void *)data;
if((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS) { switch(rq->bRequest) { case USBRQ_HID_GET_REPORT: // send "no keys pressed" if asked here // wValue: ReportType (highbyte), ReportID (lowbyte) usbMsgPtr = (void *)&keyboard_report; // we only have this one keyboard_report.modifier = 0; keyboard_report.keycode[0] = 0; return sizeof(keyboard_report); case USBRQ_HID_SET_REPORT: // if wLength == 1, should be LED state return (rq->wLength.word == 1) ? USB_NO_MSG : 0; case USBRQ_HID_GET_IDLE: // send idle rate to PC as required by spec usbMsgPtr = &idleRate; return 1; case USBRQ_HID_SET_IDLE: // save idle rate as required by spec idleRate = rq->wValue.bytes[1]; return 0; } } return 0; // by default don't return any data }
void caps_toggle(); // defined later in program logic
usbMsgLen_t usbFunctionWrite(uint8_t * data, uchar len) { if (data[0] == LED_state) return 1; else LED_state = data[0]; caps_toggle(); return 1; // Data read, not expecting more }
#define abs(x) ((x) > 0 ? (x) : (-x))
// Called by V-USB after device reset void hadUsbReset() { int frameLength, targetLength = (unsigned)(1499 * (double)F_CPU / 10.5e6 + 0.5); int bestDeviation = 9999; uchar trialCal, bestCal = 0, step, region;
// do a binary search in regions 0-127 and 128-255 to get optimum OSCCAL for(region = 0; region <= 1; region++) { frameLength = 0; trialCal = (region == 0) ? 0 : 128; for(step = 64; step > 0; step >>= 1) { if(frameLength < targetLength) // true for initial iteration trialCal += step; // frequency too low else trialCal -= step; // frequency too high OSCCAL = trialCal; frameLength = usbMeasureFrameLength(); if(abs(frameLength-targetLength) < bestDeviation) { bestCal = trialCal; // new optimum found bestDeviation = abs(frameLength -targetLength); } } }
OSCCAL = bestCal; }
// ********************* // *** PROGRAM LOGIC *** // *********************
// Routine to return a random character - currently uses the timer 0 as // a source for randomness - it goes from 0 to 255 over 7800 times a second // so it should be random enough (remember, this is called after user // presses caps lock). Of course USB timings may decrease this randomness // - replace with a better one if you want. uchar generate_character() { uchar counter = TCNT0 & 63; if(counter < 26) return 'a' + counter; else if(counter < 52) return 'A' + counter - 26; else if(counter < 62) return '0' + counter - 52; else if(counter == 62) return '-'; else return '_'; }
#define CAPS_COUNTING 0 #define CAPS_MEASURING 1
static uchar capsCount = 0; static uchar capsState = CAPS_COUNTING;
// This routine is called by usbFunctionWrite every time the keyboard LEDs // toggle - basically we count 4 toggles and then start regenerating void caps_toggle() { if(capsState == CAPS_COUNTING) { if(capsCount++ < 4) return; capsCount = 0; capsState = CAPS_MEASURING;
// Type a message to the PC that we're regenerating the password memcpy_P(messageBuffer, measuring_message, sizeof(measuring_message)); messagePtr = 0; messageState = STATE_SEND; } else { messageBuffer[capsCount++] = generate_character(); if(capsCount >= PASS_LENGTH) { // enough characters generated #if SEND_ENTER messageBuffer[capsCount++] = '\n'; #endif messageBuffer[capsCount] = '\0'; // Store password to EEPROM - might lose the USB connection, but so what eeprom_write_block(messageBuffer, stored_password, sizeof(messageBuffer)); // Type a message to the PC that new password has been generated memcpy_P(messageBuffer, finish_message, sizeof(finish_message)); messagePtr = 0; messageState = STATE_SEND; capsCount = 0; capsState = CAPS_COUNTING; } } }
int main() { uchar i;
// Fetch password from EEPROM and send it eeprom_read_block(messageBuffer, stored_password, sizeof(messageBuffer)); messagePtr = 0; messageState = STATE_SEND; for(i=0; i<sizeof(keyboard_report); i++) // clear report initially ((uchar *)&keyboard_report)[i] = 0; wdt_enable(WDTO_1S); // enable 1s watchdog timer
usbInit(); usbDeviceDisconnect(); // enforce re-enumeration for(i = 0; i<250; i++) { // wait 500 ms wdt_reset(); // keep the watchdog happy _delay_ms(2); } usbDeviceConnect(); TCCR0B |= (1 << CS01); // timer 0 at clk/8 will generate randomness sei(); // Enable interrupts after re-enumeration while(1) { wdt_reset(); // keep the watchdog happy usbPoll(); // characters are sent when messageState == STATE_SEND and after receiving // the initial LED state from PC (good way to wait until device is recognized) if(usbInterruptIsReady() && messageState == STATE_SEND && LED_state != 0xff){ messageState = buildReport(); usbSetInterrupt((void *)&keyboard_report, sizeof(keyboard_report)); } } return 0; }
|
|
|
|
|